Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as,v diff -u -r1.4 -r1.5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as 13 Jun 2007 08:11:54 -0000 1.4 +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as 14 Jun 2007 07:27:38 -0000 1.5 @@ -182,7 +182,6 @@ setStyles(); setSize(_cm); - setPosition(_cm); this._visible = true; @@ -194,10 +193,19 @@ close(); } + private function open():Void { + setSize(_cm); + + mx.transitions.TransitionManager.start(this, + {type:mx.transitions.Zoom, + direction:0, duration:1, easing:mx.transitions.easing.Bounce.easeOut}); + } + private function close():Void { mx.transitions.TransitionManager.start(this, {type:mx.transitions.Zoom, direction:1, duration:0.5, easing:mx.transitions.easing.Strong.easeIn}); + _cm.getCanvas().closeBranchView(); } @@ -214,6 +222,8 @@ */ private function drawActivity(a:Activity,cm:CanvasModel):Boolean{ + if(!cm.isActiveView(this)) return false; + var cbv = CanvasBranchView(this); var cbc = getController(); @@ -264,6 +274,8 @@ */ private function hideActivity(a:Activity, cm:CanvasModel):Boolean { + if(!cm.isActiveView(this)) return false; + var cbv = CanvasBranchView(this); var cbc = getController(); @@ -287,6 +299,8 @@ * @return Boolean - successfull */ private function removeActivity(a:Activity,cm:CanvasModel):Boolean{ + if(!cm.isActiveView(this)) return false; + var r = cm.activitiesDisplayed.remove(a.activityUIID); r.removeMovieClip(); var s:Boolean = (r==null) ? false : true; @@ -301,6 +315,8 @@ * @return */ private function drawTransition(t:Transition,cm:CanvasModel):Boolean{ + if(!isActivityOnLayer(cm.activitiesDisplayed.get(t.fromUIID), this.activityLayer) && !isActivityOnLayer(cm.activitiesDisplayed.get(t.toUIID), this.activityLayer)) return false; + var cbv = CanvasBranchView(this); var cbc = getController(); var newTransition_mc:MovieClip = transitionLayer.createChildAtDepth("CanvasTransition",DepthManager.kTop,{_transition:t,_canvasController:cbc,_canvasView:cbv}); @@ -321,6 +337,8 @@ */ private function hideTransition(t:Transition, cm:CanvasModel):Boolean{ + if(!cm.isActiveView(this)) return false; + var cbv = CanvasBranchView(this); var cbc = getController(); var newTransition_mc:MovieClip = transitionLayer.createChildAtDepth("CanvasTransition",DepthManager.kTop,{_transition:t,_canvasController:cbc,_canvasView:cbv, _visible:false}); @@ -339,6 +357,8 @@ * @return */ private function removeTransition(t:Transition,cm:CanvasModel){ + if(!cm.isActiveView(this)) return false; + var r = cm.transitionsDisplayed.remove(t.transitionUIID); r.removeMovieClip(); var s:Boolean = (r==null) ? false : true; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as,v diff -u -r1.4 -r1.5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as 13 Jun 2007 08:11:29 -0000 1.4 +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as 14 Jun 2007 07:27:36 -0000 1.5 @@ -149,15 +149,12 @@ */ public function viewLoaded(evt:Object) { if(evt.type=='load') { + + canvasModel.activeView = evt.target; if(evt.target instanceof CanvasBranchView) { - - canvasModel.activeView = evt.target; - mx.transitions.TransitionManager.start(evt.target, - {type:mx.transitions.Zoom, - direction:0, duration:1, easing:mx.transitions.easing.Bounce.easeOut}); - + evt.target.open(); } else { - + var autosave_config_interval = Config.getInstance().getItem(AUTOSAVE_CONFIG); if(autosave_config_interval > 0) { if(CookieMonster.cookieExists(AUTOSAVE_TAG + _root.userID)) { @@ -256,26 +253,27 @@ public function openBranchView(ba){ - //fadeOtherOnCanvas(ba); - var cx:Number = ba._x + ba.getVisibleWidth()/2; var cy:Number = ba._y + ba.getVisibleHeight()/2; - var _branchView_mc:MovieClip = _canvasView_mc.content.createChildAtDepth("canvasBrView", DepthManager.kTop, {_x: cx, _y: cy}); + var _branchView_mc:MovieClip = _canvasView_mc.content.createChildAtDepth("canvasBranchView", DepthManager.kTop, {_x: cx, _y: cy}); var branchView:CanvasBranchView = CanvasBranchView(_branchView_mc); branchView.init(canvasModel,undefined); //Add listener to view so that we know when it's loaded branchView.addEventListener('load', Proxy.create(this,viewLoaded)); canvasModel.addObserver(branchView); + + ba.branchView = branchView; } public function closeBranchView() { canvasModel.activeView = canvasView; canvasModel.currentBranchingActivity = null; } + /** deprecated */ private function fadeOtherOnCanvas(ba) { var k:Array = canvasModel.activitiesDisplayed.values(); @@ -583,7 +581,6 @@ public function finishEditOnFly(forced:Boolean) { Debugger.log('finishing and closing Edit On The Fly',Debugger.CRITICAL,'finishEditOnFly','Canvas'); - Debugger.log('valid design: ' + _ddm.validDesign,Debugger.CRITICAL,'finishEditOnFly','Canvas'); Debugger.log('modified: ' + _ddm.modified,Debugger.CRITICAL,'finishEditOnFly','Canvas'); @@ -667,7 +664,7 @@ var actToAdd:Activity; var actType:String; Debugger.log('actToCopy.activityTypeID:'+actToCopy.activityTypeID,Debugger.GEN,'setDroppedTemplateActivity','Canvas'); - //_global.breakpoint(); + switch(actToCopy.activityTypeID){ case(Activity.TOOL_ACTIVITY_TYPE): @@ -725,12 +722,12 @@ //give it the mouse co-ords if (actType = "Parallel"){ - actToAdd.xCoord = canvasView.content._xmouse - (complexActWidth/2); - actToAdd.yCoord = canvasView.content._ymouse; + actToAdd.xCoord = canvasModel.activeView.content._xmouse - (complexActWidth/2); + actToAdd.yCoord = canvasModel.activeView.content._ymouse; } if(actType = "Tool"){ - actToAdd.xCoord = canvasView.content._xmouse - (toolActWidth/2); - actToAdd.yCoord = canvasView.content._ymouse - (toolActHeight/2); + actToAdd.xCoord = canvasModel.activeView.content._xmouse - (toolActWidth/2); + actToAdd.yCoord = canvasModel.activeView.content._ymouse - (toolActHeight/2); } Debugger.log('actToAdd:'+actToAdd.title+':'+actToAdd.activityUIID,4,'setDroppedTemplateActivity','Canvas'); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasBranchingActivity.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Attic/CanvasBranchingActivity.as,v diff -u -r1.1 -r1.2 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as,v diff -u -r1.4 -r1.5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as 13 Jun 2007 08:11:28 -0000 1.4 +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as 14 Jun 2007 07:27:36 -0000 1.5 @@ -50,6 +50,7 @@ */ public function CanvasController (cm:Observable) { super (cm); + //have to do an upcast _canvasModel = CanvasModel(getModel()); _canvasView = CanvasView(getView()); @@ -60,81 +61,76 @@ public function activityClick(ca:Object):Void{ _canvasModel.selectedItem = null; - Debugger.log('activityClick CanvasActivity:'+ca.activity.activityUIID + ' orderID: ' + ca.activity.orderID,Debugger.GEN,'activityClick','CanvasController'); + + Debugger.log('activityClick CanvasActivity:'+ca.activity.activityUIID + ' orderID: ' + ca.activity.orderID,Debugger.GEN,'activityClick','CanvasController'); Debugger.log('Check if transition tool active :'+_canvasModel.isTransitionToolActive(),Debugger.GEN,'activityClick','CanvasController'); - //if transition tool active + + //if transition tool active if(_canvasModel.isTransitionToolActive()){ var transitionTarget = createValidTransitionTarget(ca, true); if(transitionTarget instanceof LFError){ transitionTarget.showErrorAlert(null); }else{ _canvasModel.addActivityToTransition(transitionTarget); - _canvasModel.getCanvas().view.initDrawTempTrans(); + _canvasModel.activeView.initDrawTempTrans(); } }else{ //just select the activity - var parentAct = _canvasModel.getCanvas().ddm.getActivityByUIID(ca.activity.parentUIID) if(ca.activity.parentUIID != null && parentAct.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE){ - - // _canvasModel.selectedItem = ca; _canvasModel.isDragging = false; } else { - //_canvasModel.selectedItem = ca; _canvasModel.isDragging = true; ca.startDrag(false); } } - } + } - public function clearAllSelections(optionalOnCanvas:Array, parallelOnCanvas:Array){ - for (var i=0; i 142 || ca._x < -129 || ca._y < -55 || ca._y > optionalOnCanvas[i].getpanelHeight){ - trace (ca.activity.activityUIID+" had a hitTest with canvas.") //give it the new co-ords and 'drop' it - ca.activity.xCoord = (_xmouse - _canvasModel.getPosition().x) - (_canvasModel.getCanvas().taWidth/2); ca.activity.yCoord = (_ymouse - _canvasModel.getPosition().y) - (_canvasModel.getCanvas().taHeight/2); _canvasModel.removeOptionalCA(ca, optionalOnCanvas[i].activity.activityUIID); @@ -161,7 +157,6 @@ var msg:String = Dictionary.getValue('cv_gateoptional_hit_chk'); LFMessage.showMessageAlert(msg); }else { - //_canvasModel.addParentToActivity(optionalOnCanvas[i].activity.activityUIID, ca) if (_canvasModel.getCanvas().ddm.getTransitionsForActivityUIID(ca.activity.activityUIID).hasTrans){ activitySnapBack(ca); var msg:String = Dictionary.getValue('cv_invalid_optional_activity', [ca.activity.title]); @@ -180,7 +175,6 @@ } - //if we are on the bin - trash it isActivityOnBin(ca); @@ -189,12 +183,10 @@ _canvasView = CanvasView(getView()); } - //give it the new co-ords and 'drop' it ca.activity.xCoord = ca._x; ca.activity.yCoord = ca._y; - //refresh the transitions //TODO: refresh the transitions as you drag... var myTransitions = _canvasModel.getCanvas().ddm.getTransitionsForActivityUIID(ca.activity.activityUIID); @@ -222,11 +214,10 @@ Debugger.log('ca.activity.xCoord:'+ca.activity.xCoord,Debugger.GEN,'activityRelease','CanvasController'); - }else { + } else { if (_canvasModel.isTransitionToolActive()){ _canvasModel.getCanvas().stopTransitionTool(); - //_canvasModel.resetTransitionTool(); - _canvasModel.getCanvas().view.removeTempTrans(); + _canvasModel.activeView.removeTempTrans(); new LFError("You cannot create a Transition between the same Activities","addActivityToTransition",this); } clearAllSelections(optionalOnCanvas, parallelOnCanvas) @@ -235,7 +226,6 @@ } } - private function activitySnapBack(ca:Object){ ca._x = ca.activity.xCoord; ca._y = ca.activity.yCoord; @@ -249,8 +239,8 @@ * @return */ public function activityDoubleClick(ca:Object):Void{ - Debugger.log('activityDoubleClick CanvasActivity:'+ca.activity.activityUIID,Debugger.CRITICAL,'activityDoubleClick','CanvasController'); - var parentAct = _canvasModel.getCanvas().ddm.getActivityByUIID(ca.activity.parentUIID) + Debugger.log('activityDoubleClick CanvasActivity:'+ca.activity.activityUIID,Debugger.CRITICAL,'activityDoubleClick','CanvasController'); + var parentAct = _canvasModel.getCanvas().ddm.getActivityByUIID(ca.activity.parentUIID) _canvasModel.getCanvas().stopActiveTool(); _canvasModel.getCanvas().stopTransitionTool(); if(!isActivityReadOnly(ca, Dictionary.getValue("cv_element_readOnly_action_mod"))) { @@ -301,22 +291,17 @@ */ public function activityReleaseOutside(ca:Object):Void{ - _canvasModel.getCanvas().view.removeTempTrans(); + _canvasModel.activeView.removeTempTrans(); Debugger.log('activityReleaseOutside CanvasActivity:'+ca.activity.activityUIID,Debugger.GEN,'activityReleaseOutside','CanvasController'); Debugger.log('activityReleaseOutside Check if Transition tool active:'+_canvasModel.isTransitionToolActive(),Debugger.GEN,'activityReleaseOutside','CanvasController'); + if(_canvasModel.isTransitionToolActive()){ - //get a ref to the CanvasActivity the transition pen is over when released var currentCursor:MovieClip = Cursor.getCurrentCursorRef(); - //Debugger.log("currentCursor:"+currentCursor, Debugger.GEN,'activityReleaseOutside','CanvasController'); - //strip the last mc off the path as its the click target - //_global.breakpoint(); + Debugger.log("currentCursor._droptarget:"+currentCursor._droptarget, Debugger.GEN,'activityReleaseOutside','CanvasController'); - //var _dt:String = currentCursor._droptarget; - //var idx:Number = _dt.indexOf("/", 1); - //var _dt = _dt.substring(idx, _dt.length); var dt:String = new String(eval(currentCursor._droptarget)); @@ -334,8 +319,7 @@ _canvasModel.resetTransitionTool(); _canvasModel.getCanvas().stopTransitionTool(); LFError(transitionTarget).showErrorAlert(null); - //LFMessage.showMessageAlert(transitionTarget); - }else{ + } else { var td = _canvasModel.addActivityToTransition(transitionTarget); _canvasModel.resetTransitionTool(); @@ -344,7 +328,6 @@ _canvasModel.resetTransitionTool(); _canvasModel.getCanvas().stopTransitionTool(); LFError(td).showErrorAlert(null); - //LFMessage.showMessageAlert(td); } } _canvasModel.resetTransitionTool(); @@ -358,12 +341,6 @@ //if we are on the bin - trash it isActivityOnBin(ca); - - /**if (ca.hitTest(_canvasModel.getCanvas().bin)){ - //_canvasModel.getCanvas().removeActivity(ca.activity.activityUIID); - _canvasModel.removeActivityOnBin(ca.activity.activityUIID); - }*/ - } } @@ -385,7 +362,7 @@ } public function transitionClick(ct:CanvasTransition):Void{ - Debugger.log('transitionClick Transition:'+ct.transition.uiID,Debugger.GEN,'transitionClick','CanvasController'); + Debugger.log('transitionClick Transition:'+ct.transition.uiID,Debugger.GEN,'transitionClick','CanvasController'); _canvasModel.getCanvas().stopActiveTool(); _canvasModel.selectedItem = ct; @@ -403,13 +380,13 @@ _canvasView = CanvasView(getView()); Debugger.log('_canvasView:'+_canvasView,Debugger.GEN,'transitionDoubleClick','CanvasController'); - if(!isTransitionTargetReadOnly(ct, Dictionary.getValue("cv_element_readOnly_action_mod"))) _canvasView.createTransitionPropertiesDialog("centre",Delegate.create(this, transitionPropertiesOK)); + if(!isTransitionTargetReadOnly(ct, Dictionary.getValue("cv_element_readOnly_action_mod"))) _canvasModel.activeView.createTransitionPropertiesDialog("centre",Delegate.create(this, transitionPropertiesOK)); _canvasModel.selectedItem = ct; } public function transitionRelease(ct:CanvasTransition):Void{ - Debugger.log("transitionRelease Transition:" + ct.transition.uiID, Debugger.GEN, "transitionRelease", "CanvasController"); + Debugger.log("transitionRelease Transition:" + ct.transition.uiID, Debugger.GEN, "transitionRelease", "CanvasController"); if(_canvasModel.isDragging){ ct.stopDrag(); @@ -433,8 +410,8 @@ ct.reDraw(); } + public function transitionReleaseOutside(ct:CanvasTransition):Void{ - trace("transitionrelease outside") transitionRelease(ct); } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as,v diff -u -r1.4 -r1.5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as 13 Jun 2007 08:11:29 -0000 1.4 +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as 14 Jun 2007 07:27:36 -0000 1.5 @@ -156,6 +156,10 @@ return _activeView; } + public function isActiveView(view:Object):Boolean { + return (activeView == view); + } + public function setPIHeight(h:Number){ _piHeight = h; Application.getInstance().onResize(); @@ -212,7 +216,6 @@ for (var i=0; i= optionalX && iconMouseX <= (optionalX + optionalWidth)){ if (iconMouseY >= optionalY && iconMouseY <= (optionalY + optionalHeight)){ isCanvasDrop = false; dragIcon_mc.removeMovieClip(); - trace("optional Container is hitted") + if (optionalOnCanvas[i].locked){ var msg:String = Dictionary.getValue('act_lock_chk'); LFMessage.showMessageAlert(msg); }else{ - trace("hit with optional") var ta:TemplateActivity; ta = _toolkitModel.getSelectedTemplateActivity(); cv.setDroppedTemplateActivity(ta, optionalOnCanvas[i].activity.activityUIID); } } } } + if(isCanvasDrop){ //remove the drag icon Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as,v diff -u -r1.4 -r1.5 --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as 13 Jun 2007 08:11:31 -0000 1.4 +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as 14 Jun 2007 07:27:38 -0000 1.5 @@ -118,8 +118,10 @@ activityLayer.attachMovie("squareHandle", "h1", activityLayer.getNextHighestDepth()); activityLayer.attachMovie("squareHandle", "h2", activityLayer.getNextHighestDepth()); - activityLayer.h1._x = content._xmouse - activityLayer.h1._y = content._ymouse + activityLayer.h1._x = this._xmouse + activityLayer.h1._y = this._ymouse + Debugger.log("content: " + content, Debugger.GEN, "initDrawTempTrans", "CommonCanvasView"); + activityLayer.tempTrans.onEnterFrame = drawTempTrans; @@ -135,12 +137,13 @@ this.clear(); - Debugger.log("Runtime movieclips cleared from CanvasView: clear()", Debugger.GEN, "drawTempTrans", "CommonCanvasView"); + Debugger.log("Runtime movieclips cleared from CanvasView: clear()", Debugger.GEN, "drawTempTrans", "CommonCanvasView"); - Draw.dashTo(this, _parent.h1._x, _parent.h1._y, _parent._parent._xmouse - 3, _parent._parent._ymouse - 3, 7, 4); + Draw.dashTo(this, _parent.h1._x, _parent.h1._y, _parent._parent._xmouse - 3, _parent._parent._ymouse - 3, 7, 4); _parent.h2._x = _parent._parent._xmouse - 3; _parent.h2._y = _parent._parent._ymouse - 3; } + public function removeTempTrans(){ Debugger.log("Stopped drawing temp. Transition", Debugger.GEN, "removeTempTrans", "CommonCanvasView"); @@ -228,6 +231,10 @@ public function set transparentCover(a:MovieClip):Void { _transparentCover_mc = a; + } + + public function isActivityOnLayer(a:MovieClip, layer:MovieClip) { + return (a._parent == layer); } } \ No newline at end of file