Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java,v diff -u -r1.16 -r1.17 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 16 Jun 2006 06:19:59 -0000 1.16 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 16 Jun 2006 07:25:29 -0000 1.17 @@ -51,6 +51,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; +import org.apache.taglibs.standard.lang.jstl.ComplexValue; import org.lamsfoundation.lams.contentrepository.InvalidParameterException; import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; import org.lamsfoundation.lams.contentrepository.NodeKey; @@ -805,13 +806,18 @@ Activity fromAct = activityMapper.get(transDto.getFromActivityID()); trans.setFromActivity(fromAct); trans.setFromUIID(fromAct.getActivityUIID()); + //also set transition to activity: It is nonsense for persisit data, but it is help this learning design validated + fromAct.setTransitionTo(trans); // set to null // trans.setLearningDesign(); trans.setTitle(transDto.getTitle()); Activity toAct = activityMapper.get(transDto.getToActivityID()); trans.setToActivity(toAct); trans.setToUIID(toAct.getActivityUIID()); + //also set transition to activity: It is nonsense for persisit data, but it is help this learning design validated + toAct.setTransitionFrom(trans); + trans.setTransitionId(transDto.getTransitionID()); trans.setTransitionUIID(transDto.getTransitionUIID()); @@ -911,7 +917,20 @@ act.setLibraryActivityUiImage(actDto.getLibraryActivityUIImage()); act.setOrderId(actDto.getOrderID()); - act.setParentActivity(activityMapper.get(actDto.getParentActivityID())); + if(actDto.getParentActivityID() != null){ + Activity parent = activityMapper.get(actDto.getParentActivityID()); + act.setParentActivity(parent); + //also add child as Complex activity: It is useless for persist data, but helpful for validate in learning design! + if(isComplexActivity(parent)){ + Set set = ((ComplexActivity)parent).getActivities(); + if(set == null){ + set = new TreeSet(new ActivityOrderComparator()); + ((ComplexActivity)parent).setActivities(set); + } + set.add(act); + } + }else + act.setParentActivity(null); act.setParentUIID(actDto.getParentUIID()); act.setRunOffline(actDto.getRunOffline()); @@ -985,4 +1004,11 @@ this.workspaceFolderDAO = workspaceFolderDAO; } + private boolean isComplexActivity(Activity act) + { + return act.getActivityTypeId().intValue() == Activity.SEQUENCE_ACTIVITY_TYPE || + act.getActivityTypeId().intValue()== Activity.PARALLEL_ACTIVITY_TYPE || + act.getActivityTypeId().intValue()== Activity.OPTIONS_ACTIVITY_TYPE; + } + }