Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java,v
diff -u -r1.38 -r1.39
--- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java 9 May 2007 01:03:36 -0000 1.38
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java 5 Jun 2007 04:33:20 -0000 1.39
@@ -36,6 +36,7 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.dao.IBaseDAO;
import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.BranchingActivity;
import org.lamsfoundation.lams.learningdesign.ChosenGrouping;
import org.lamsfoundation.lams.learningdesign.ComplexActivity;
import org.lamsfoundation.lams.learningdesign.GateActivity;
@@ -803,6 +804,8 @@
buildToolActivity((ToolActivity)activity,activityDetails);
else if(activity.isGateActivity())
buildGateActivity(activity,activityDetails);
+ else if(activity.isBranchingActivity())
+ buildBranchingActivity((BranchingActivity)activity,activityDetails);
else
buildComplexActivity((ComplexActivity)activity,activityDetails);
}
@@ -818,6 +821,20 @@
buildSequenceActivity((SequenceActivity)activity,activityDetails);
}
+ private void buildBranchingActivity(BranchingActivity branchingActivity,Hashtable activityDetails)
+ throws WDDXProcessorConversionException, ObjectExtractorException {
+ /**
+ * read the createBranchingUUID, get the Branching Object, and set CreateBranching to that object
+ */
+ //Integer createBranchingUIID = WDDXProcessor.convertToInteger(activityDetails,WDDXTAGS.CREATE_BRANCHINGS_UIID);
+
+ // Get Branching object
+
+ // doesn't extend SystemToolActivity class??
+ //SystemTool systemTool = systemToolDAO.getSystemToolByID(SystemTool.BRANCHING);
+ //branchingActivity.setSystemTool(systemTool);
+
+ }
private void buildGroupingActivity(GroupingActivity groupingActivity,Hashtable activityDetails)
throws WDDXProcessorConversionException, ObjectExtractorException {
/**
@@ -843,8 +860,7 @@
groupingActivity.setCreateGrouping(null);
groupingActivity.setCreateGroupingUIID(null);
} */
- }
-
+ }
private void buildOptionsActivity(OptionsActivity optionsActivity,Hashtable activityDetails) throws WDDXProcessorConversionException{
if (keyExists(activityDetails, WDDXTAGS.MAX_OPTIONS))
optionsActivity.setMaxNumberOfOptions(WDDXProcessor.convertToInteger(activityDetails,WDDXTAGS.MAX_OPTIONS));
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml,v
diff -u -r1.28 -r1.29
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml 9 May 2007 01:09:26 -0000 1.28
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml 5 Jun 2007 04:33:17 -0000 1.29
@@ -263,6 +263,9 @@
@hibernate.class
+
+ @hibernate.class
+
Index: lams_common/db/sql/insert_types_data.sql
===================================================================
RCS file: /usr/local/cvsroot/lams_common/db/sql/insert_types_data.sql,v
diff -u -r1.64 -r1.65
--- lams_common/db/sql/insert_types_data.sql 9 May 2007 01:14:31 -0000 1.64
+++ lams_common/db/sql/insert_types_data.sql 5 Jun 2007 04:33:18 -0000 1.65
@@ -76,6 +76,7 @@
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_gate_activity_level VALUES (1, 'LEARNER');
INSERT INTO lams_gate_activity_level VALUES (2, 'GROUP');
@@ -173,7 +174,17 @@
'learning/gate.do?method=knockGate', 'learning/gate.do?method=knockGate', null, null,
'monitoring/gateExportPortfolio?mode=teacher', 'monitoring/gate.do?method=viewGate',
'monitoring/gate.do?method=viewGate', 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, '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() );
+
-- 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/src/java/org/lamsfoundation/lams/learningdesign/Activity.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java,v
diff -u -r1.58 -r1.59
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 9 May 2007 01:07:24 -0000 1.58
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 5 Jun 2007 04:33:16 -0000 1.59
@@ -70,6 +70,7 @@
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;
/******************************************************************/
/**
@@ -329,6 +330,10 @@
activity = new SystemGateActivity();
activity.setActivityCategoryID(CATEGORY_SYSTEM);
break;
+ case BRANCHING_ACTIVITY_TYPE:
+ activity = new BranchingActivity();
+ activity.setActivityCategoryID(CATEGORY_SYSTEM);
+ break;
default:
activity = new GroupingActivity();
activity.setActivityCategoryID(CATEGORY_SYSTEM);
@@ -793,7 +798,8 @@
{
return getActivityTypeId().intValue()== SEQUENCE_ACTIVITY_TYPE ||
getActivityTypeId().intValue()== PARALLEL_ACTIVITY_TYPE ||
- getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE;
+ getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE ||
+ getActivityTypeId().intValue()== BRANCHING_ACTIVITY_TYPE;
}
public boolean isSystemToolActivity()
@@ -845,10 +851,24 @@
return getActivityTypeId().intValue() == SYSTEM_GATE_ACTIVITY_TYPE;
}
+ /**
+ * /**
+ * Check up whether an activity is grouping activity or not.
+ * @return is this activity a grouping activity
+ */
public boolean isGroupingActivity()
{
return getActivityTypeId().intValue()== GROUPING_ACTIVITY_TYPE;
}
+
+ /**
+ * Check up whether an activity is branching activity or not.
+ * @return is this activity a branching activity
+ */
+ public boolean isBranchingActivity()
+ {
+ return getActivityTypeId().intValue()== BRANCHING_ACTIVITY_TYPE;
+ }
public boolean isActivityReadOnly()
{
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchingActivity.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchingActivity.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchingActivity.java 5 Jun 2007 04:33:16 -0000 1.1
@@ -0,0 +1,140 @@
+/****************************************************************
+ * 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: BranchingActivity.java,v 1.1 2007/06/05 04:33:16 mseaton Exp $$ */
+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 BranchingActivity extends ComplexActivity implements Serializable {
+
+ /** full constructor */
+ public BranchingActivity(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);
+ super.activityStrategy = new BranchingActivityStrategy(this);
+ }
+
+ /** default constructor */
+ public BranchingActivity() {
+ super.activityStrategy = new BranchingActivityStrategy(this);
+ }
+
+ /** minimal constructor */
+ public BranchingActivity(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);
+ 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/dao/hibernate/ActivityDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java,v
diff -u -r1.18 -r1.19
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java 9 May 2007 01:07:25 -0000 1.18
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java 5 Jun 2007 04:33:18 -0000 1.19
@@ -37,6 +37,7 @@
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.dao.IActivityDAO;
import org.springframework.dao.DataRetrievalFailureException;
@@ -99,6 +100,8 @@
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);
default: break;
}
}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java,v
diff -u -r1.26 -r1.27
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java 9 May 2007 01:07:23 -0000 1.26
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java 5 Jun 2007 04:33:18 -0000 1.27
@@ -26,6 +26,7 @@
import java.util.Date;
import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.BranchingActivity;
import org.lamsfoundation.lams.learningdesign.GateActivity;
import org.lamsfoundation.lams.learningdesign.Grouping;
import org.lamsfoundation.lams.learningdesign.GroupingActivity;
@@ -334,6 +335,8 @@
addOptionsActivityAttributes((OptionsActivity)activity);
else if (activity.isParallelActivity())
addParallelActivityAttributes((ParallelActivity)activity);
+ else if(activity.isBranchingActivity())
+ addBranchingActivityAttributes((BranchingActivity)activity);
else
addSequenceActivityAttributes((SequenceActivity)activity);
@@ -353,6 +356,8 @@
}
private void addParallelActivityAttributes(ParallelActivity activity){
}
+ private void addBranchingActivityAttributes(BranchingActivity activity){
+ }
private void addSequenceActivityAttributes(SequenceActivity activity){
}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java,v
diff -u -r1.15 -r1.16
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java 17 Sep 2006 06:14:19 -0000 1.15
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java 5 Jun 2007 04:33:18 -0000 1.16
@@ -26,6 +26,7 @@
import java.util.Date;
import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.BranchingActivity;
import org.lamsfoundation.lams.learningdesign.GateActivity;
import org.lamsfoundation.lams.learningdesign.Grouping;
import org.lamsfoundation.lams.learningdesign.GroupingActivity;
@@ -143,9 +144,12 @@
addOptionsActivityAttributes((OptionsActivity)activity);
else if (activity.isParallelActivity())
addParallelActivityAttributes((ParallelActivity)activity);
+ else if (activity.isBranchingActivity())
+ addBranchingActivityAttributes((BranchingActivity)activity);
else
addSequenceActivityAttributes((SequenceActivity)activity);
+
}
private void addGroupingActivityAttributes(GroupingActivity groupingActivity){
/* Grouping grouping = groupingActivity.getCreateGrouping();
@@ -162,6 +166,9 @@
private void addParallelActivityAttributes(ParallelActivity activity){
}
+ private void addBranchingActivityAttributes(BranchingActivity activity){
+
+ }
private void addSequenceActivityAttributes(SequenceActivity activity){
}
private void addToolActivityAttributes(ToolActivity toolActivity){
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/BranchingActivityStrategy.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/BranchingActivityStrategy.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/BranchingActivityStrategy.java 5 Jun 2007 04:33:18 -0000 1.1
@@ -0,0 +1,79 @@
+/****************************************************************
+ * 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: BranchingActivityStrategy.java,v 1.1 2007/06/05 04:33:18 mseaton Exp $$ */
+package org.lamsfoundation.lams.learningdesign.strategy;
+
+import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.ComplexActivity;
+import org.lamsfoundation.lams.learningdesign.BranchingActivity;
+
+
+/**
+ * The progress calculation strategy for branching activity.
+ *
+ * @author Mitchell Seaton
+ * @version 2.1
+ */
+public class BranchingActivityStrategy extends ComplexActivityStrategy
+{
+ 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.
+ *
+ * @see org.lamsfoundation.lams.learningdesign.strategy.ComplexActivityStrategy#getNextActivityByParent(Activity, Activity)
+ */
+ public Activity getNextActivityByParent(ComplexActivity activity, Activity currentChild)
+ {
+ return null;
+ }
+
+ /**
+ * Return the completion status of children activities within a branching
+ * activity. A branching activity is marked as complete if all children
+ * activities are completed.
+ *
+ * @see org.lamsfoundation.lams.learningdesign.strategy.ComplexActivityStrategy#isComplete(int)
+ */
+ protected boolean isComplete(int numOfCompletedActivities)
+ {
+ if ( branchingActivity != null ) {
+ return numOfCompletedActivities==branchingActivity.getActivities().size()?true:false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * Get the strategy's activity as a Complex Activity.
+ */
+ protected ComplexActivity getComplexActivity() {
+ return branchingActivity;
+ }
+}
Index: lams_common/src/java/org/lamsfoundation/lams/tool/SystemTool.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/SystemTool.java,v
diff -u -r1.6 -r1.7
--- lams_common/src/java/org/lamsfoundation/lams/tool/SystemTool.java 9 May 2007 01:07:24 -0000 1.6
+++ lams_common/src/java/org/lamsfoundation/lams/tool/SystemTool.java 5 Jun 2007 04:33:16 -0000 1.7
@@ -46,6 +46,7 @@
public static final Long SCHEDULE_GATE = new Long(3);
public static final Long PERMISSION_GATE = new Long(4);
public static final Long SYSTEM_GATE = new Long(5);
+ public static final Long BRANCHING = new Long(6);
/** identifier field */
private Long systemToolId;