Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r05df71967088bea36114494ffd8fea5e2c58ba21 -r69c442eb02e0be013812860d6d573f9c6d48c950 Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r05df71967088bea36114494ffd8fea5e2c58ba21 -r69c442eb02e0be013812860d6d573f9c6d48c950 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as =================================================================== diff -u -r44ced49b5c5e10ec15551f036d98c125b4005e5c -r69c442eb02e0be013812860d6d573f9c6d48c950 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 44ced49b5c5e10ec15551f036d98c125b4005e5c) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 69c442eb02e0be013812860d6d573f9c6d48c950) @@ -197,6 +197,7 @@ Debugger.log('Removed:'+r.activityUIID,Debugger.GEN,'removeActivity','DesignDataModel'); dispatchEvent({type:'ddmUpdate',target:this}); + return r; } } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as =================================================================== diff -u -r9cfea1d1e010d926dfcb4f2270ff4b388f907271 -r69c442eb02e0be013812860d6d573f9c6d48c950 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision 9cfea1d1e010d926dfcb4f2270ff4b388f907271) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision 69c442eb02e0be013812860d6d573f9c6d48c950) @@ -28,6 +28,7 @@ import org.lamsfoundation.lams.common.mvc.*; import org.lamsfoundation.lams.common.CommonCanvasView; import org.lamsfoundation.lams.authoring.cv.*; +import org.lamsfoundation.lams.authoring.br.*; import org.lamsfoundation.lams.authoring.*; import org.lamsfoundation.lams.monitoring.mv.MonitorModel; import org.lamsfoundation.lams.monitoring.mv.MonitorController; @@ -125,24 +126,23 @@ setSize(cm); break; case 'DRAW_ACTIVITY': - drawActivity(event.data,cm); + drawActivity(event.data, cm); break; case 'REMOVE_ACTIVITY': - removeActivity(event.data,cm); + removeActivity(event.data, cm); break; case 'SELECTED_ITEM' : Debugger.log("selecting item: " + cm.selectedItem.activity.activityUIID, Debugger.CRITICAL, "viewUpdate", "CanvasComplexView"); Debugger.log("test parent: " + cm.findParent(cm.selectedItem.activity, _complexActivity.activity), Debugger.CRITICAL, "viewUpdate", "CanvasComplexView"); - //var caComplex = activitiesDisplayed.get(_complexActivity.activity.activityUIID); _tempActivity.refreshChildren(); highlightActivity(cm); break; case 'SET_ACTIVE' : Debugger.log('setting active :' + event.updateType + " event.data: " + event.data + " condition: " + (event.data == this),Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasView'); - _tempActivity.locked = !(event.data == this) + _tempActivity.locked = !(event.data == this); _visible = true; break; @@ -171,6 +171,18 @@ dispatchEvent({type:'load',target:this}); } + public function updateActivity():Boolean { + if(_tempActivity != null) { + if(_tempActivity instanceof CanvasOptionalActivity) { + CanvasOptionalActivity(_tempActivity).updateChildren(model.ddm.getComplexActivityChildren(_tempActivity.activity.activityUIID)) + } + + return true; + } + + return false; + } + public function showActivity():Void { if(drawActivity(_complexActivity.activity, model)) setSize(model); @@ -183,7 +195,7 @@ model.activeView = _prevActiveView; model.currentBranchingActivity = (_prevActiveView.activity.isBranchingActivity()) ? _prevActiveView.activity : null; - + model.removeObserver(this); this.removeMovieClip(); } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -r9cfea1d1e010d926dfcb4f2270ff4b388f907271 -r69c442eb02e0be013812860d6d573f9c6d48c950 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 9cfea1d1e010d926dfcb4f2270ff4b388f907271) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 69c442eb02e0be013812860d6d573f9c6d48c950) @@ -589,19 +589,61 @@ } private function isActivityOnBin(ca:Object):Void{ + if (ca.hitTest(_canvasModel.getCanvas().bin)) { - if(!isActivityReadOnly(ca, Dictionary.getValue("cv_element_readOnly_action_del")) && !ca.branchConnector && !isActivityProtected(ca)) { + if(_canvasModel.activeView instanceof CanvasComplexView) { + var r:Object; + if (ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.OPTIONS_WITH_SEQUENCES_TYPE || ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE || ca.activity.isBranchingActivity()){ - Debugger.log("removing complex act that hit bin" , Debugger.CRITICAL, "isActivityOnBin", "CanvasController"); - if(ca.activity.isBranchingActivity()) - _canvasModel.getCanvas().ddm.removeEntries(_canvasModel.getCanvas().ddm.getBranchMappingsByActivityUIIDAndType(ca.activity.activityUIID).all); + _canvasModel.removeComplexActivityChildren(ca.actChildren); + r = _canvasModel.ddm.removeActivity(ca.activity.activityUIID); + } else { + r = _canvasModel.ddm.removeActivity(ca.activity.activityUIID); + } + + if(ca == _canvasModel.activeView.openActivity) { + // close current complex activity + refresh parent + _canvasModel.activeView.close(); - _canvasModel.removeComplexActivity(ca); + if(_canvasModel.activeView instanceof CanvasComplexView) { _canvasModel.activeView.updateActivity(); + } else { + Debugger.log("r: " + r.parentUIID, Debugger.CRITICAL, "isActivityOnBin", "CanvasController"); + + var parent = _canvasModel.activitiesDisplayed.get(r.parentUIID); + var gparent = _canvasModel.activitiesDisplayed.get( _canvasModel.ddm.getActivityByUIID(r.parentUIID).parentUIID); + + Debugger.log("parent: " + parent, Debugger.CRITICAL, "isActivityOnBin", "CanvasController"); + Debugger.log("gparent: " + gparent, Debugger.CRITICAL, "isActivityOnBin", "CanvasController"); + + if(parent != null) + parent.updateChildren(_canvasModel.ddm.getComplexActivityChildren(parent.activity.activityUIID)); + else if(gparent != null) + parent.updateChildren(_canvasModel.ddm.getComplexActivityChildren(parent.activity.activityUIID)); + else + return; + + _canvasModel.activitiesDisplayed.get(ca.activity) + } } else { - _canvasModel.removeActivityOnBin(ca.activity.activityUIID); + // refresh current complex activity + _canvasModel.activeView.updateActivity(); } + } else { - activitySnapBack(ca); + + if(!isActivityReadOnly(ca, Dictionary.getValue("cv_element_readOnly_action_del")) && !ca.branchConnector && !isActivityProtected(ca)) { + if (ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.OPTIONS_WITH_SEQUENCES_TYPE || ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE || ca.activity.isBranchingActivity()){ + Debugger.log("removing complex act that hit bin" , Debugger.CRITICAL, "isActivityOnBin", "CanvasController"); + if(ca.activity.isBranchingActivity()) + _canvasModel.getCanvas().ddm.removeEntries(_canvasModel.getCanvas().ddm.getBranchMappingsByActivityUIIDAndType(ca.activity.activityUIID).all); + + _canvasModel.removeComplexActivity(ca); + } else { + _canvasModel.removeActivityOnBin(ca.activity.activityUIID); + } + } else { + activitySnapBack(ca); + } } } } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as =================================================================== diff -u -r47545d87ebe3a0fde51c85720b8e0693ad471843 -r69c442eb02e0be013812860d6d573f9c6d48c950 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as (.../CanvasSequenceActivity.as) (revision 47545d87ebe3a0fde51c85720b8e0693ad471843) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as (.../CanvasSequenceActivity.as) (revision 69c442eb02e0be013812860d6d573f9c6d48c950) @@ -158,8 +158,11 @@ Debugger.log("firstActivityUIID: " + ComplexActivity(_activity).firstActivityUIID, Debugger.CRITICAL, "init", "CanvasSequenceActivity"); - if(ComplexActivity(_activity).firstActivityUIID != null) - _children.push(_ddm.getActivityByUIID(ComplexActivity(_activity).firstActivityUIID)); + if(ComplexActivity(_activity).firstActivityUIID != null) { + var firstActivity:Activity = _ddm.getActivityByUIID(ComplexActivity(_activity).firstActivityUIID); + if(firstActivity != null) _children.push(firstActivity); + else ComplexActivity(_activity).firstActivityUIID = null; + } showAssets(false);