Index: lams_central/src/java/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml,v diff -u -r1.13.6.3 -r1.13.6.4 --- lams_central/src/java/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml 1 Mar 2007 23:57:42 -0000 1.13.6.3 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml 19 Mar 2007 06:12:01 -0000 1.13.6.4 @@ -69,6 +69,8 @@ PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java,v diff -u -r1.41.2.7 -r1.41.2.8 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 23 Feb 2007 03:36:07 -0000 1.41.2.7 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 19 Mar 2007 06:11:59 -0000 1.41.2.8 @@ -379,11 +379,12 @@ gate = (GateActivity) activities.get(0); if(gate != null) { - gate.forceGateOpen(); - activityDAO.update(gate); + // remove inputted system gate + design = removeTempSystemGate(gate, design); + } - learningDesignDAO.update(design); + learningDesignDAO.insertOrUpdate(design); flashMessage = new FlashMessage("finishEditOnFly", lesson.getLessonId()); @@ -399,6 +400,32 @@ } + public LearningDesign removeTempSystemGate(GateActivity gate, LearningDesign design) { + // get transitions + Transition toTransition = gate.getTransitionTo(); + Transition fromTransition = gate.getTransitionFrom(); + + // rearrange to-transition and/or delete redundant transition + if(toTransition != null && fromTransition != null) { + toTransition.setToActivity(fromTransition.getToActivity()); + toTransition.setToUIID(toTransition.getToActivity().getActivityUIID()); + + design.getTransitions().remove(fromTransition); + transitionDAO.update(toTransition); + + } else if(toTransition != null && fromTransition == null) { + design.getTransitions().remove(toTransition); + } else if(toTransition == null && fromTransition != null) { + design.setFirstActivity(fromTransition.getToActivity()); + design.getTransitions().remove(fromTransition); + } + + // remove temp system gate + design.getActivities().remove(gate); + + return design; + } + public void addSystemGateAfterActivity(ArrayList activities, LearningDesign design) { GateActivity gate = null; Integer syncType = null; Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java,v diff -u -r1.19.6.5 -r1.19.6.6 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 23 Feb 2007 03:36:07 -0000 1.19.6.5 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 19 Mar 2007 06:11:59 -0000 1.19.6.6 @@ -28,6 +28,7 @@ import java.util.Vector; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.dto.AuthoringActivityDTO; import org.lamsfoundation.lams.learningdesign.dto.ValidationErrorDTO; @@ -265,6 +266,12 @@ /** * + * @param gate + */ + public LearningDesign removeTempSystemGate(GateActivity gate, LearningDesign design); + + /** + * * @param design * @return * @throws LearningDesignException