Fisheye: Tag bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c refers to a dead (removed) revision in file `lams_flex/LamsAuthor/ActivityComponent.as'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_flex/LamsAuthor/src/assets/icons/bin.png =================================================================== diff -u Binary files differ Index: lams_flex/LamsAuthor/src/assets/icons/bin_over.png =================================================================== diff -u Binary files differ Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/Bin.mxml =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/Bin.mxml (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/Bin.mxml (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -0,0 +1,64 @@ + + + + + + + + + + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasArea.mxml =================================================================== diff -u -r0aaad79f0f603dbb8fbcc1bd66f381428715c4d5 -rbbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasArea.mxml (.../CanvasArea.mxml) (revision 0aaad79f0f603dbb8fbcc1bd66f381428715c4d5) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasArea.mxml (.../CanvasArea.mxml) (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -1,37 +1,27 @@ - - - - - + - + - - - - + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml =================================================================== diff -u -r0aaad79f0f603dbb8fbcc1bd66f381428715c4d5 -rbbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml (.../ActivityComponent.mxml) (revision 0aaad79f0f603dbb8fbcc1bd66f381428715c4d5) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml (.../ActivityComponent.mxml) (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -77,9 +77,6 @@ Application.application.canvasArea.propertyInspector.closePropertyInspector(); } - - - // The mouseMove event handler for the Image control // initiates the drag-and-drop operation. protected function mouseMove(event:MouseEvent):void @@ -95,7 +92,7 @@ // Set the offset for dropping the activity to the local mouse position activityComponent.mouseOffSetX = event.localX; - activityComponent.mouseOffSetY = event.localY; + activityComponent.mouseOffSetY = event.localY; DragManager.doDrag(activityComponent, ds, event); setCenter(); @@ -109,7 +106,7 @@ switch (Application.application.cursorState) { case Constants.CURSOR_STATE_TRANSITION: if (this.canStartTransitions) { - startDragging(event); + startTransition(event); } break; @@ -122,7 +119,7 @@ centerY = y + height/2 -10; } - protected function startDragging(event:MouseEvent):void { + protected function startTransition(event:MouseEvent):void { if (transitionOut != null) { //parent.removeChild(transitionOut); @@ -154,7 +151,7 @@ } - protected function stopDragging():void + protected function stopTransition():void { Application.application.uiState = Constants.UI_STATE_NORMAL; systemManager.removeEventListener(MouseEvent.MOUSE_MOVE, systemManagerMouseMoveHandler, true); @@ -182,9 +179,9 @@ */ private function systemManagerMouseUpHandler(event:MouseEvent):void { - stopDragging(); + stopTransition(); - var transitionEvent:TransitionEvent = new TransitionEvent(TransitionEvent.TRANSITION_EVENT); + var transitionEvent:TransitionEvent = new TransitionEvent(TransitionEvent.TRANSITION_COMPLETE); transitionEvent.sourceAcivityComponent = this; transitionEvent.transition = transitionOut; Application.application.dispatchEvent(transitionEvent); @@ -193,7 +190,7 @@ private function stageMouseLeaveHandler(event:MouseEvent):void { - stopDragging(); + stopTransition(); } private function mouseOver(event:MouseEvent):void { Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/transition/TransitionComponent.as =================================================================== diff -u -ra29b09f571d90b3bbb52490afb6691b5d4fb473f -rbbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/transition/TransitionComponent.as (.../TransitionComponent.as) (revision a29b09f571d90b3bbb52490afb6691b5d4fb473f) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/transition/TransitionComponent.as (.../TransitionComponent.as) (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -2,9 +2,15 @@ { import com.dncompute.graphics.GraphicsUtil; + import flash.events.MouseEvent; import flash.geom.Point; + import mx.core.Application; + import mx.core.DragSource; + import mx.managers.DragManager; + import org.lamsfoundation.lams.author.components.activity.ActivityComponent; + import org.lamsfoundation.lams.author.util.Constants; public class TransitionComponent extends DrawingTool { @@ -13,6 +19,7 @@ public function TransitionComponent() { + this.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { @@ -45,6 +52,17 @@ } } + + // The mouseMove event handler for the Image control + // initiates the drag-and-drop operation. + private function mouseMove(event:MouseEvent):void + { + if (Application.application.cursorState == Constants.CURSOR_STATE_NORMAL) { + var ds:DragSource = new DragSource(); + ds.addData(this, "img"); + DragManager.doDrag(this, ds, event, this); + } + } } } \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/controller/AuthorController.as =================================================================== diff -u -ra29b09f571d90b3bbb52490afb6691b5d4fb473f -rbbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/controller/AuthorController.as (.../AuthorController.as) (revision a29b09f571d90b3bbb52490afb6691b5d4fb473f) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/controller/AuthorController.as (.../AuthorController.as) (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -14,6 +14,7 @@ import org.lamsfoundation.lams.author.components.activity.*; import org.lamsfoundation.lams.author.components.toolbar.SystemActivityComponent; import org.lamsfoundation.lams.author.components.transition.TransitionComponent; + import org.lamsfoundation.lams.author.events.AuthorActivityEvent; import org.lamsfoundation.lams.author.events.TransitionEvent; import org.lamsfoundation.lams.author.model.learninglibrary.LearningLibraryEntry; import org.lamsfoundation.lams.author.util.Constants; @@ -224,5 +225,64 @@ return false; } } + + + /** + * This function is invoked when an activity is dragged into the bin + * it deletes the activity and any related transitions + * + * TODO: Check the state of the LD and set it to invalid if neccessary + * + * @param event AuthorActivityEvent containing the acitvity object + * + */ + public function deleteActivity(event:AuthorActivityEvent):void { + var canvasBox:CanvasBox = Application.application.canvasArea.canvasBox; + + var activityComponent:ActivityComponent = event.activityComponent; + + // Remove transition in, if needed + if (activityComponent.transitionIn != null) { + canvasBox.removeChild(activityComponent.transitionIn); + transitionArray.removeItemAt(transitionArray.getItemIndex(activityComponent.transitionIn)); + activityComponent.transitionIn.fromActivity.transitionOut = null; + activityComponent.transitionIn = null; + } + + // Remove transition out if needed + if (activityComponent.transitionOut != null) { + canvasBox.removeChild(activityComponent.transitionOut); + transitionArray.removeItemAt(transitionArray.getItemIndex(activityComponent.transitionOut)); + activityComponent.transitionOut.toActivity.transitionIn = null; + activityComponent.transitionOut = null; + } + + // Remove activity + canvasBox.removeChild(activityComponent); + activityComponent = null; + } + + + /** + * This function is invoked when a transition is dropped into the bin + * it deletes the transition + * + * TODO: Check the state of the LD and set it to invalid if neccessary + * + * @param event the TransitionEvent + */ + public function deleteTransition(event:TransitionEvent): void { + var canvasBox:CanvasBox = Application.application.canvasArea.canvasBox; + + var transition:TransitionComponent = event.transition; + + transitionArray.removeItemAt(transitionArray.getItemIndex(transition)); + transition.fromActivity.transitionOut = null; + transition.toActivity.transitionIn = null; + transition = null; + + } + + } } \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/events/AuthorActivityEvent.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/events/AuthorActivityEvent.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/events/AuthorActivityEvent.as (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -0,0 +1,17 @@ +package org.lamsfoundation.lams.author.events +{ + import flash.events.Event; + import org.lamsfoundation.lams.author.components.activity.ActivityComponent; + + public class AuthorActivityEvent extends Event + { + public static const DELETE_ACTIVITY_EVENT:String = "deleteActivityEvent"; + public var activityComponent:ActivityComponent; + + public function AuthorActivityEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) + { + super(type, bubbles, cancelable); + } + + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/events/TransitionEvent.as =================================================================== diff -u -rb18306871e780d0266af4b3135c37780f09d2b72 -rbbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/events/TransitionEvent.as (.../TransitionEvent.as) (revision b18306871e780d0266af4b3135c37780f09d2b72) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/events/TransitionEvent.as (.../TransitionEvent.as) (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -6,7 +6,10 @@ public class TransitionEvent extends AuthorEvent { - public static const TRANSITION_EVENT:String = "transitionEvent"; + public static const TRANSITION_COMPLETE:String = "transitionComplete"; + public static const DELETE_TRANSITION:String = "deleteTransition"; + + public var sourceAcivityComponent:ActivityComponent; public var transition:TransitionComponent; public var localY:int; Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/maps/MainEventMap.mxml =================================================================== diff -u -r92b3c89bd281fcd2d991c4b8c821fcb3f2ebe0b5 -rbbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/maps/MainEventMap.mxml (.../MainEventMap.mxml) (revision 92b3c89bd281fcd2d991c4b8c821fcb3f2ebe0b5) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/maps/MainEventMap.mxml (.../MainEventMap.mxml) (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -57,13 +57,6 @@ --> - - - - @@ -98,7 +91,7 @@ - + @@ -107,7 +100,17 @@ + + + + + + + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as =================================================================== diff -u -r0aaad79f0f603dbb8fbcc1bd66f381428715c4d5 -rbbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as (.../Constants.as) (revision 0aaad79f0f603dbb8fbcc1bd66f381428715c4d5) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as (.../Constants.as) (revision bbf05bc0eb7a947272cb76a9e9c5b1093cd54e2c) @@ -19,7 +19,6 @@ public static const UI_STATE_NORMAL:int = 1; public static const UI_STATE_DRAWING:int = 2; - public static const ACTIVITY_STATE_NORMAL:int = 1; public static const ACTIVITY_STATE_DRAWING:int = 2; public static const ACTIVITY_STATE_MOUSE_OVER:int = 3;