Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as =================================================================== diff -u -r47545d87ebe3a0fde51c85720b8e0693ad471843 -r9cfea1d1e010d926dfcb4f2270ff4b388f907271 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision 47545d87ebe3a0fde51c85720b8e0693ad471843) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision 9cfea1d1e010d926dfcb4f2270ff4b388f907271) @@ -53,6 +53,8 @@ private var _canvasComplexView:CanvasComplexView; private var _complexActivity:CanvasActivity; + private var _tempActivity; + private var _parentActivity:Object; private var _prevActiveView; @@ -70,7 +72,7 @@ _canvasComplexView = this; _tm = ThemeManager.getInstance(); - activitiesDisplayed = new Hashtable("activitiesDisplayed"); + //activitiesDisplayed = new Hashtable("activitiesDisplayed"); //Init for event delegation mx.events.EventDispatcher.initialize(this); @@ -132,15 +134,17 @@ 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); - caComplex.refreshChildren(); + //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) _visible = true; + break; default : Debugger.log('unknown update type :' + event.updateType,Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasComplexView'); @@ -154,49 +158,34 @@ private function draw(){ //get the content path for the sp content = this; - //content._alpha = 0; - //bkg_pnl = content.createClassObject(Panel, "bkg_pnl", content.getNextHighestDepth()); - //transparentCover = content.createClassObject(Panel, "_transparentCover_mc", content.getNextHighestDepth(), {_visible: false, enabled: false, _alpha: 50}); - //transparentCover.onPress = null; - activityComplexLayer = content.createEmptyMovieClip("_activityComplexLayer_mc", content.getNextHighestDepth()); activityLayer = content.createEmptyMovieClip("_activityLayer_mc", content.getNextHighestDepth()); - //bkg_pnl.useHandCursor = false; - + complexViewer = content.createEmptyMovieClip("_complex_viewer_mc", content.getNextHighestDepth()); + branchContent = content.createEmptyMovieClip("_branch_content_mc", DepthManager.kTopmost); + setStyles(); //Dispatch load event dispatchEvent({type:'load',target:this}); } public function showActivity():Void { - drawActivity(_complexActivity.activity, model); + if(drawActivity(_complexActivity.activity, model)) + setSize(model); - // change position - var ca:MovieClip = activitiesDisplayed.get(_complexActivity.activity.activityUIID); - - setSize(model, ca); - this._visible = true; } public function close():Void { removeActivity(_complexActivity.activity, model); - if(model instanceof CanvasModel) { - model.activeView = _prevActiveView; - model.currentBranchingActivity = (_prevActiveView.activity.isBranchingActivity()) ? _prevActiveView.activity : null; + model.activeView = _prevActiveView; + model.currentBranchingActivity = (_prevActiveView.activity.isBranchingActivity()) ? _prevActiveView.activity : null; - model.getCanvas().closeComplexView(); - } else { - //model.getMonitor().getMV().getMonitorTabView().showAssets(true); - model.activeView = _prevActiveView; - model.currentBranchingActivity = (_prevActiveView.activity.isBranchingActivity()) ? _prevActiveView.activity : null; - - model.getMonitor().closeComplexView(); - } + model.removeObserver(this); + this.removeMovieClip(); } /** @@ -218,15 +207,17 @@ var children:Array = cm.getCanvas().ddm.getComplexActivityChildren(a.activityUIID); var newActivity_mc = activityLayer.createChildAtDepth("CanvasParallelActivity",DepthManager.kTop,{_x: 0, _y: 0, _activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv, _locked:a.isReadOnly()}); + _tempActivity = newActivity_mc; - activitiesDisplayed.put(a.activityUIID, newActivity_mc); + //activitiesDisplayed.put(a.activityUIID, newActivity_mc); Debugger.log('Parallel activity a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasView'); } else if(a.activityTypeID==Activity.OPTIONAL_ACTIVITY_TYPE || a.activityTypeID==Activity.OPTIONS_WITH_SEQUENCES_TYPE){ var children:Array = cm.getCanvas().ddm.getComplexActivityChildren(a.activityUIID); - var newActivity_mc = activityComplexLayer.createChildAtDepth("CanvasOptionalActivity",DepthManager.kTop,{_x: 0, _y: 0, _activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv,_locked:a.isReadOnly()}); + var newActivity_mc = activityComplexLayer.createChildAtDepth("CanvasOptionalActivity", DepthManager.kTop, {_x: 0, _y: 0, _activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv,_locked:a.isReadOnly()}); - activitiesDisplayed.put(a.activityUIID, newActivity_mc); + _tempActivity = newActivity_mc; + //activitiesDisplayed.put(a.activityUIID, newActivity_mc); Debugger.log('Optional activity Type a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasView'); } else { @@ -255,13 +246,8 @@ /** * Sets the size of the canvas on stage, called from update */ - private function setSize(cm, ca:MovieClip):Void{ + private function setSize(cm):Void{ var s:Object = cm.getSize(); - - //canvas_scp.setSize(ca._width, ca._height); - //bkg_pnl.setSize(ca._width, ca._height); - //transparentCover.setSize(s.w, s.h); - } /** @@ -272,8 +258,7 @@ */ private function setStyles() { var styleObj = _tm.getStyleObject('CanvasPanel'); - //bkg_pnl.setStyle('styleName', styleObj); - //transparentCover.setStyle('styleName', styleObj); + transparentCover.setStyle('styleName', styleObj); } /** @@ -322,4 +307,12 @@ return (model instanceof CanvasModel) ? new CanvasController(model) : new MonitorModel(model); } + public function get openActivity():MovieClip { + return _tempActivity; + } + + public function get complexActivity():CanvasActivity { + return _complexActivity; + } + } \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -r47545d87ebe3a0fde51c85720b8e0693ad471843 -r9cfea1d1e010d926dfcb4f2270ff4b388f907271 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 47545d87ebe3a0fde51c85720b8e0693ad471843) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 9cfea1d1e010d926dfcb4f2270ff4b388f907271) @@ -83,7 +83,9 @@ var td = _canvasModel.addActivityToConnection(transitionTarget); _canvasModel.activeView.initDrawTempTrans(); } - + } else if(_canvasModel.activeView instanceof CanvasComplexView && ca != _canvasModel.activeView.openActivity && ca.locked) { + _canvasModel.activeView.close(); + return; } else { var parentAct = _canvasModel.getCanvas().ddm.getActivityByUIID(ca.activity.parentUIID); var parentSelectedAct = _canvasModel.getCanvas().ddm.getActivityByUIID(_tempSelectedItem.activity.parentUIID); @@ -144,7 +146,7 @@ public function activityRelease(ca:Object):Void{ Debugger.log('activityRelease CanvasActivity:'+ca.activity.activityUIID,Debugger.GEN,'activityRelease','CanvasController'); - + if (_canvasModel.isTransitionToolActive()){ _canvasModel.getCanvas().stopTransitionTool(); _canvasModel.activeView.removeTempTrans(); @@ -339,8 +341,12 @@ } } } else { - ca._x = 0; - ca._y = 0; + if(ca instanceof CanvasParallelActivity || ca instanceof CanvasOptionalActivity) { + ca._x = 0; + ca._y = 0; + } else { + activitySnapBack(ca); + } } //refresh the transitions Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as =================================================================== diff -u -r47545d87ebe3a0fde51c85720b8e0693ad471843 -r9cfea1d1e010d926dfcb4f2270ff4b388f907271 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision 47545d87ebe3a0fde51c85720b8e0693ad471843) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision 9cfea1d1e010d926dfcb4f2270ff4b388f907271) @@ -585,13 +585,30 @@ var parentAct:Activity = ddm.getActivityByUIID(ca.activity.parentUIID); var grandParentActivity:MovieClip = canvasModel.activitiesDisplayed.get(parentAct.parentUIID); var parentActivity:MovieClip = canvasModel.activitiesDisplayed.get(parentAct.activityUIID); + + if(canvasModel.activeView instanceof CanvasComplexView) { + if(canvasModel.activeView.complexActivity == ca) { + return; + } + + target = canvasModel.activeView.complexViewer; - if(parentAct.isSequenceActivity() && grandParentActivity instanceof CanvasOptionalActivity) { - cx = grandParentActivity._x + parentAct.xCoord + ca._x; - cy = grandParentActivity._y + parentAct.yCoord + ca._y; + if(parentAct.isSequenceActivity() && grandParentActivity instanceof CanvasOptionalActivity) { + cx = parentAct.xCoord + ca._x; + cy = parentAct.yCoord + ca._y; + } else { + cx = ca._x; + cy = ca._y; + } } else { - cx = parentActivity._x + ca._x; - cy = parentActivity._y + ca._y; + + if(parentAct.isSequenceActivity() && grandParentActivity instanceof CanvasOptionalActivity) { + cx = grandParentActivity._x + parentAct.xCoord + ca._x; + cy = grandParentActivity._y + parentAct.yCoord + ca._y; + } else { + cx = parentActivity._x + ca._x; + cy = parentActivity._y + ca._y; + } } Debugger.log("co ord x: " + cx + " y: " + cy, Debugger.CRITICAL, "openComplexView", "CanvasHelper"); @@ -604,11 +621,6 @@ canvasModel.addObserver(canvasComplexView); } - - public function closeComplexView():Void { - canvasModel.removeObserver(canvasComplexView); - _canvasComplexView_mc.removeMovieClip(); - } /** * recieves event fired after update to the DDM