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.15 -r1.16 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 24 Feb 2005 05:44:59 -0000 1.15 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 27 Feb 2005 22:23:15 -0000 1.16 @@ -556,15 +556,23 @@ return new NullGroup(); } /** - * Check up whether a is tool activity or not. - * @return + * Check up whether an activity is tool activity or not. + * @return is this activity a tool activity? */ public boolean isToolActivity() { return getActivityTypeId().intValue()==TOOL_ACTIVITY_TYPE; } /** + * Check up whether an activity is sequence activity or not. + * @return is this activity a sequence activity? + */ + public boolean isSequenceActivity() + { + return getActivityTypeId().intValue()==SEQUENCE_ACTIVITY_TYPE; + } + /** * Delegate to activity strategy to check up the status of all children. * @param learnerProgress the current learner progress that record the * all completed activities. Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java,v diff -u -r1.8 -r1.9 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java 24 Feb 2005 01:29:09 -0000 1.8 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java 27 Feb 2005 22:23:15 -0000 1.9 @@ -117,6 +117,15 @@ return newSequenceActivity; } + /** + * Retrieve the first activity in current sequence activity; + * @return the first activity; + */ + public Activity getFirstActivityInSequenceActivity() + { + return this.getNextActivityByParent(new NullActivity()); + } + public String toString() { return new ToStringBuilder(this) .append("activityId", getActivityId()) Index: lams_common/src/java/org/lamsfoundation/lams/lesson/SequenceActivityStrategy.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/lesson/Attic/SequenceActivityStrategy.java,v diff -u -r1.2 -r1.3 --- lams_common/src/java/org/lamsfoundation/lams/lesson/SequenceActivityStrategy.java 24 Feb 2005 04:11:33 -0000 1.2 +++ lams_common/src/java/org/lamsfoundation/lams/lesson/SequenceActivityStrategy.java 27 Feb 2005 22:23:15 -0000 1.3 @@ -57,6 +57,9 @@ for(Iterator i=children.iterator();i.hasNext();) { Activity curChild = (Activity)i.next(); + //if no current child, we should return the first one. + if(currentChild.isNull()) + return curChild; if(curChild.getActivityId().longValue()==currentChild.getActivityId().longValue()) return (Activity)i.next(); Index: lams_common/test/java/org/lamsfoundation/lams/lesson/TestActivityStrategy.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/Attic/TestActivityStrategy.java,v diff -u -r1.3 -r1.4 --- lams_common/test/java/org/lamsfoundation/lams/lesson/TestActivityStrategy.java 25 Feb 2005 01:36:54 -0000 1.3 +++ lams_common/test/java/org/lamsfoundation/lams/lesson/TestActivityStrategy.java 27 Feb 2005 22:23:15 -0000 1.4 @@ -21,6 +21,7 @@ package org.lamsfoundation.lams.lesson; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.NullActivity; import org.lamsfoundation.lams.lesson.dao.TestLearnerProgressDAO; @@ -135,6 +136,17 @@ assertEquals("it should be qna",this.testSubSeuqenceActivityQNA.getActivityId().longValue(),nextActivity.getActivityId().longValue()); } + public void testGetFirstActivityWithinSequenceParentActivity() + { + testSubSeuquencActivitySR = activityDAO.getActivityByActivityId(TEST_SR_ACTIVITY_ID); + + Activity nextActivity = this.testSequenceActivity.getNextActivityByParent(new NullActivity()); + + assertNotNull("we should have a next activity",nextActivity); + assertEquals("it should be share resource",this.testSubSeuquencActivitySR.getActivityId().longValue(),nextActivity.getActivityId().longValue()); + } + + public void testGetNextActivityByOptionsParentActivity() { testSubOptionsActivityNB = activityDAO.getActivityByActivityId(TEST_NB_ACTIVITY_ID);