Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r4ae57947df368bd25c092641c8f657428315bf5e -r0d2b62ff5f1e06568936567798a8e53c1c15eeec Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r4ae57947df368bd25c092641c8f657428315bf5e -r0d2b62ff5f1e06568936567798a8e53c1c15eeec Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Bin.as =================================================================== diff -u -reaa9b5ca1c61bf87f01ef2edbb3362a1b1a85115 -r0d2b62ff5f1e06568936567798a8e53c1c15eeec --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Bin.as (.../Bin.as) (revision eaa9b5ca1c61bf87f01ef2edbb3362a1b1a85115) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Bin.as (.../Bin.as) (revision 0d2b62ff5f1e06568936567798a8e53c1c15eeec) @@ -44,6 +44,8 @@ private var up_mc:MovieClip; private var over_mc:MovieClip; + private var _blocked:Boolean; + //Defined so compiler can 'see' events added at runtime by EventDispatcher private var dispatchEvent:Function; public var addEventListener:Function; @@ -67,6 +69,8 @@ private function draw(){ over_mc._visible = false; up_mc._visible = true; + + setStyles(); } private function onRelease():Void{ @@ -87,4 +91,40 @@ private function onRollOut():Void{ _tip.CloseToolTip(); } + + private function setStyles():Void { + //var styleObj = _tm.getStyleObject("bin"); + over_mc._alpha = 40; + } + + private function setOn(a:Boolean):Void { + over_mc._visible = a; + up_mc._visible = !a; + } + + public function setOff():Void { + setOn(false); + } + + public function isActivityOverBin(ca:MovieClip, isInit:Boolean):Void { + var hit = ca.hitTest(this); + _blocked = (isInit || (!hit && _blocked)) ? hit : _blocked; + + if(!isInit && !_blocked) + setOn(hit); + } + + public function initBlocked(ca:MovieClip):Boolean { + isActivityOverBin(ca, true); + + return _blocked; + } + + public function set blocked(a:Boolean):Void { + _blocked = blocked; + } + + public function get blocked():Boolean { + return _blocked; + } } \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -r34cb1725fa1d312652042fd3108aceaa65adf7ad -r0d2b62ff5f1e06568936567798a8e53c1c15eeec --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 34cb1725fa1d312652042fd3108aceaa65adf7ad) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 0d2b62ff5f1e06568936567798a8e53c1c15eeec) @@ -45,7 +45,11 @@ private var app:Application; private var _isBusy:Boolean; private var _tempSelectedItem:Object; + private var _binCheckIntervalID:Number; + private var _binBlock:Boolean; + private static var BIN_CHECK_INTERVAL:Number = 100; + /** * Constructor * @@ -65,7 +69,7 @@ } public function activityClick(ca:Object):Void{ - + _tempSelectedItem = _canvasModel.selectedItem; _canvasModel.selectedItem = null; @@ -103,6 +107,10 @@ ca.depthHistory = ca.getDepth(); ca.swapDepths(DepthManager.kTopmost); } + + _binBlock = _canvasModel.getCanvas().bin.initBlocked(ca); + _binCheckIntervalID = setInterval(Proxy.create(_canvasModel.getCanvas().bin, _canvasModel.getCanvas().bin.isActivityOverBin, ca, false), BIN_CHECK_INTERVAL); + ca.startDrag(false); _canvasModel.isDragging = true; } @@ -169,6 +177,7 @@ if(_canvasModel.isDragging) { ca.stopDrag(); + if (ca.activity.isOptionalActivity() || ca.activity.isOptionsWithSequencesActivity()) { ca.swapDepths(ca.depthHistory); ca.depthHistory = null; @@ -322,7 +331,9 @@ // if we are on the bin - trash it isActivityOnBin(ca); + clearInterval(_binCheckIntervalID); + //get a view if ther is not one if(!_canvasView) _canvasView = CanvasView(getView()); @@ -619,7 +630,7 @@ var r:Object = null; var parentUIID:Number = ca.activity.parentUIID; - if(ca.hitTest(_canvasModel.getCanvas().bin)) { + if(ca.hitTest(_canvasModel.getCanvas().bin) && !_canvasModel.getCanvas().bin.blocked) { if(_canvasModel.activeView instanceof CanvasComplexView) { var seqActivity:Activity = Activity(_canvasModel.ddm.getActivityByUIID(parentUIID)); if(seqActivity.isOptionalSequenceActivity(_canvasModel.ddm.getActivityByUIID(seqActivity.parentUIID))) @@ -667,6 +678,8 @@ activitySnapBack(ca); } } + + _canvasModel.getCanvas().bin.setOff(); } }