Index: lams_flex/LamsAuthor/ActivityComponent.as =================================================================== diff -u --- lams_flex/LamsAuthor/ActivityComponent.as (revision 0) +++ lams_flex/LamsAuthor/ActivityComponent.as (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -0,0 +1,188 @@ +package org.lamsfoundation.lams.author.components.activity +{ + import flash.events.Event; + import flash.events.MouseEvent; + import flash.geom.Point; + + import mx.containers.VBox; + import mx.controls.Label; + import mx.core.Application; + import mx.core.DragSource; + import mx.managers.DragManager; + + import org.lamsfoundation.lams.author.components.transition.Transition; + import org.lamsfoundation.lams.author.events.TransitionEvent; + import org.lamsfoundation.lams.author.util.Constants; + + public class ActivityComponent extends VBox + { + public var xpos:int; + public var ypos:int; + public var title:Label; + + public var centerX:int; + public var centerY:int; + + private var transitionIn:Transition; + private var transitionOut:Transition; + + // The mouseMove event handler for the Image control + // initiates the drag-and-drop operation. + public function mouseMoveHandler(event:MouseEvent):void + { + switch (Application.application.cursorState) { + case Constants.CURSOR_STATE_NORMAL: + var activityComponent:ActivityComponent = event.currentTarget as ActivityComponent; + var ds:DragSource = new DragSource(); + ds.addData(activityComponent, "img"); + DragManager.doDrag(activityComponent, ds, event); + setCenter(); + + if (transitionOut != null) + { + transitionOut.startX = centerX; + transitionOut.startY = centerY; + transitionOut.invalidateDisplayList(); + } + + + if (transitionIn != null) { + transitionIn.endX = centerX; + transitionIn.endY = centerY; + transitionIn.invalidateDisplayList(); + } + + break; + } + } + + public function load():void { + + } + + + public function mouseDown(event:MouseEvent):void { + + switch (Application.application.cursorState) { + case Constants.CURSOR_STATE_TRANSITION: + var transitionEvent:TransitionEvent = new TransitionEvent(TransitionEvent.TRANSITION_EVENT); + transitionEvent.sourceAcivityComponent = this; + transitionEvent.localX = event.localX; + transitionEvent.localY = event.localY; + //Application.application.dispatchEvent(transitionEvent); + startDragging(transitionEvent) + break; + } + + } + + public function setCenter():void { + centerX = x + height/2; + centerY = y + height/2 -10; + } + + + + private function startDragging(event:TransitionEvent):void { + + if (transitionOut != null) { + parent.removeChild(transitionOut); + } + + setCenter(); + Application.application.uiState = Constants.UI_STATE_DRAWING; + transitionOut = new Transition(); + transitionOut.startX = event.sourceAcivityComponent.centerX; + transitionOut.startY = event.sourceAcivityComponent.centerY; + transitionOut.endX = event.sourceAcivityComponent.centerX; + transitionOut.endY = event.sourceAcivityComponent.centerY; + transitionOut.invalidateProperties(); + + parent.addChild(transitionOut); + + systemManager.addEventListener(MouseEvent.MOUSE_MOVE, systemManager_mouseMoveHandler, true); + systemManager.addEventListener(MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true); + systemManager.stage.addEventListener(Event.MOUSE_LEAVE, stage_mouseLeaveHandler); + + } + + protected function stopDragging():void + { + Application.application.uiState = Constants.UI_STATE_NORMAL; + systemManager.removeEventListener(MouseEvent.MOUSE_MOVE, systemManager_mouseMoveHandler, true); + systemManager.removeEventListener(MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true); + systemManager.stage.removeEventListener(Event.MOUSE_LEAVE, stage_mouseLeaveHandler); + } + + private function systemManager_mouseMoveHandler(event:MouseEvent):void + { + var pt:Point = new Point(event.stageX,event.stageY); + pt = parent.globalToLocal(pt); + + transitionOut.endX = pt.x; + transitionOut.endY = pt.y; + + transitionOut.invalidateDisplayList(); + } + + private function systemManager_mouseUpHandler(event:MouseEvent):void + { + stopDragging(); + + var validTransition:Boolean = false; + for (var i:int = 0; i < parent.numChildren; i++) { + + if (parent.getChildAt(i) is ActivityComponent) { + var activityComponent:ActivityComponent = parent.getChildAt(i) as ActivityComponent; + + var boundPoint:Point = activityComponent.contentToGlobal(new Point(activityComponent.x,activityComponent.y)); + var eventPoint:Point = contentToGlobal(new Point(event.stageX,event.stageY)); + + + var maxx:int = boundPoint.x + activityComponent.width; + var maxy:int = boundPoint.y + activityComponent.height; + + if (eventPoint.x > boundPoint.x && + eventPoint.x < maxx && + eventPoint.y > boundPoint.y && + eventPoint.y < maxy) { + // We are within the bounds of an activity + + activityComponent.transitionIn = transitionOut; + validTransition = true; + } + } + } + + if (!validTransition) { + parent.removeChild(transitionOut); + transitionOut = null; + } + + } + + private function stage_mouseLeaveHandler(event:MouseEvent):void + { + stopDragging(); + } + + + + + + + + + + + + + + + + + + } + + +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/LamsAuthor.mxml =================================================================== diff -u -re11155f5e0c1a923e08fcd2ce2f57873bc1c6904 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/LamsAuthor.mxml (.../LamsAuthor.mxml) (revision e11155f5e0c1a923e08fcd2ce2f57873bc1c6904) +++ lams_flex/LamsAuthor/src/LamsAuthor.mxml (.../LamsAuthor.mxml) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -30,6 +30,10 @@ // State of cursor transition/help/dataflow etc... public var cursorState:int = Constants.CURSOR_STATE_NORMAL; + // ui state + public var uiState:int = Constants.UI_STATE_NORMAL; + + private function preInit():void { if (TESTING && !TESTING_LOCAL) { Index: lams_flex/LamsAuthor/src/assets/css/learningLibrary.css =================================================================== diff -u -rd8dfc7bb7a4c77a846cfcd2cb0bc71d500df0af3 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/assets/css/learningLibrary.css (.../learningLibrary.css) (revision d8dfc7bb7a4c77a846cfcd2cb0bc71d500df0af3) +++ lams_flex/LamsAuthor/src/assets/css/learningLibrary.css (.../learningLibrary.css) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -1,66 +1,75 @@ -/* CSS file */ - -.linkButtonWindowShade { - headerClass:ClassReference('mx.controls.LinkButton'); - header-style-name: linkButtonStyle; - drop-shadow-enabled:true; - corner-radius:10; - border-style:solid; - font-weight:bold; - use-roll-over: false; -} - -.linkButtonStyle { - corner-radius:10; - fill-alphas:1,1; - padding-left:10; - -} - -.informative { - headerClass:ClassReference('mx.controls.LinkButton'); - header-style-name: linkButtonStyle; - drop-shadow-enabled:true; - corner-radius:10; - border-style:solid; - font-weight:bold; - use-roll-over: false; - roll-over-color:#FFEEC8; - selectionColor:#FFEEC8; - -} - -.reflective { - headerClass:ClassReference('mx.controls.LinkButton'); - header-style-name: linkButtonStyle; - drop-shadow-enabled:true; - corner-radius:10; - border-style:solid; - font-weight:bold; - use-roll-over: false; - roll-over-color:#DDFCB1; - selectionColor:#DDFCB1; -} - -.collaborative { - headerClass:ClassReference('mx.controls.LinkButton'); - header-style-name: linkButtonStyle; - drop-shadow-enabled:true; - corner-radius:10; - border-style:solid; - font-weight:bold; - use-roll-over: false; - roll-over-color:#FFFDBE; - selectionColor:#FFFDBE; -} - -.assessment { - headerClass:ClassReference('mx.controls.LinkButton'); - header-style-name: linkButtonStyle; - drop-shadow-enabled:true; - corner-radius:10; - border-style:solid; - font-weight:bold; - roll-over-color:#E9E2F5; - selectionColor:#E9E2F5; +/* CSS file */ + +.linkButtonWindowShade { + headerClass:ClassReference('mx.controls.LinkButton'); + header-style-name: linkButtonStyle; + drop-shadow-enabled:true; + corner-radius:10; + border-style:solid; + font-weight:bold; + use-roll-over: false; +} + +.linkButtonStyle { + corner-radius:10; + fill-alphas:1,1; + padding-left:10; + +} + +.all { + headerClass:ClassReference('mx.controls.LinkButton'); + header-style-name: linkButtonStyle; + drop-shadow-enabled:true; + corner-radius:10; + border-style:solid; + font-weight:bold; +} + +.informative { + headerClass:ClassReference('mx.controls.LinkButton'); + header-style-name: linkButtonStyle; + drop-shadow-enabled:true; + corner-radius:10; + border-style:solid; + font-weight:bold; + use-roll-over: false; + roll-over-color:#FFEEC8; + selectionColor:#FFEEC8; + +} + +.reflective { + headerClass:ClassReference('mx.controls.LinkButton'); + header-style-name: linkButtonStyle; + drop-shadow-enabled:true; + corner-radius:10; + border-style:solid; + font-weight:bold; + use-roll-over: false; + roll-over-color:#DDFCB1; + selectionColor:#DDFCB1; +} + +.collaborative { + headerClass:ClassReference('mx.controls.LinkButton'); + header-style-name: linkButtonStyle; + drop-shadow-enabled:true; + corner-radius:10; + border-style:solid; + font-weight:bold; + use-roll-over: false; + roll-over-color:#FFFDBE; + selectionColor:#FFFDBE; +} + +.assessment { + headerClass:ClassReference('mx.controls.LinkButton'); + header-style-name: linkButtonStyle; + drop-shadow-enabled:true; + corner-radius:10; + border-style:solid; + font-weight:bold; + roll-over-color:#E9E2F5; + selectionColor:#E9E2F5; } \ No newline at end of file Index: lams_flex/LamsAuthor/src/assets/images/icon_minimize.gif =================================================================== diff -u Binary files differ Index: lams_flex/LamsAuthor/src/assets/images/portlet_minimize_icon_off.gif =================================================================== diff -u Binary files differ Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasArea.mxml =================================================================== diff -u -re11155f5e0c1a923e08fcd2ce2f57873bc1c6904 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasArea.mxml (.../CanvasArea.mxml) (revision e11155f5e0c1a923e08fcd2ce2f57873bc1c6904) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasArea.mxml (.../CanvasArea.mxml) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -6,7 +6,6 @@ @@ -117,18 +126,17 @@ - - + - - + + + + /> - Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasBox.mxml =================================================================== diff -u -re11155f5e0c1a923e08fcd2ce2f57873bc1c6904 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasBox.mxml (.../CanvasBox.mxml) (revision e11155f5e0c1a923e08fcd2ce2f57873bc1c6904) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasBox.mxml (.../CanvasBox.mxml) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -9,7 +9,6 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibrary2.mxml =================================================================== diff -u -re11155f5e0c1a923e08fcd2ce2f57873bc1c6904 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibrary2.mxml (.../LearningLibrary2.mxml) (revision e11155f5e0c1a923e08fcd2ce2f57873bc1c6904) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibrary2.mxml (.../LearningLibrary2.mxml) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -14,12 +14,14 @@ + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent.mxml =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent.mxml (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent.mxml (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -0,0 +1,62 @@ + + + + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent2.mxml =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent2.mxml (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent2.mxml (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -0,0 +1,108 @@ + + + + + + + Fisheye: Tag 3fb93ca162c53177b3ddfdf836c47bf868e144ff refers to a dead (removed) revision in file `lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.as'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -0,0 +1,186 @@ + + + + + + + + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/CombinedActivityComponent.mxml =================================================================== diff -u -re11155f5e0c1a923e08fcd2ce2f57873bc1c6904 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/CombinedActivityComponent.mxml (.../CombinedActivityComponent.mxml) (revision e11155f5e0c1a923e08fcd2ce2f57873bc1c6904) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/CombinedActivityComponent.mxml (.../CombinedActivityComponent.mxml) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -3,6 +3,7 @@ xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="middle" horizontalAlign="center" horizontalScrollPolicy="off" + paddingTop="3" paddingLeft="3" paddingRight="6" paddingBottom="3" > @@ -15,37 +16,45 @@ public var toolActivityComponent1:ToolActivityComponent; public var toolActivityComponent2:ToolActivityComponent; - public var learningLibraryEntry:LearningLibraryEntry; + public var learningLibraryEntry:LearningLibraryEntry; override public function load():void { var vbox:VBox = new VBox(); vbox.setConstraintValue("verticalAlign", "middle"); + vbox.setConstraintValue("verticalGap", 0); vbox.setConstraintValue("horizontalAlign", "center"); vbox.setStyle('borderStyle', 'solid'); vbox.setStyle('dropShadowEnabled', true); vbox.setStyle('shadowDirection', "right"); vbox.setStyle('cornerRadius', '10'); vbox.setStyle('backgroundColor', '#C2D5FE'); + vbox.setStyle('paddingTop', 6); + vbox.setStyle('paddingBottom', 4); vbox.horizontalScrollPolicy = "off"; - vbox.height = 150; + vbox.height = 120; vbox.minWidth = 100; - var tool1:Tool = learningLibraryEntry.toolTemplates[1]; var tool2:Tool = learningLibraryEntry.toolTemplates[2]; if (tool1 != null) { toolActivityComponent1 = new ToolActivityComponent(); toolActivityComponent1.tool = learningLibraryEntry.toolTemplates[1]; toolActivityComponent1.load(); + toolActivityComponent1.toolTip = toolActivityComponent1.title.text; + toolActivityComponent1.title.visible = false; + toolActivityComponent1.title.height = 0; vbox.addChild(toolActivityComponent1); } if (tool1 != null) { toolActivityComponent2 = new ToolActivityComponent(); toolActivityComponent2.tool = learningLibraryEntry.toolTemplates[2]; toolActivityComponent2.load(); + toolActivityComponent2.toolTip = toolActivityComponent2.title.text; + toolActivityComponent2.title.visible = false; + toolActivityComponent2.title.height = 0; vbox.addChild(toolActivityComponent2); } @@ -55,7 +64,6 @@ title.text = learningLibraryEntry.title; this.addChild(title); - addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } ]]> Fisheye: Tag 3fb93ca162c53177b3ddfdf836c47bf868e144ff refers to a dead (removed) revision in file `lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/LearningLibraryEntryComponent.mxml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 3fb93ca162c53177b3ddfdf836c47bf868e144ff refers to a dead (removed) revision in file `lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/LearningLibraryEntryComponent2.mxml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ToolActivityComponent.mxml =================================================================== diff -u -re11155f5e0c1a923e08fcd2ce2f57873bc1c6904 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ToolActivityComponent.mxml (.../ToolActivityComponent.mxml) (revision e11155f5e0c1a923e08fcd2ce2f57873bc1c6904) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ToolActivityComponent.mxml (.../ToolActivityComponent.mxml) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -1,10 +1,13 @@ + verticalAlign="middle" horizontalAlign="center" horizontalScrollPolicy="off" + paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3" + > Fisheye: Tag 3fb93ca162c53177b3ddfdf836c47bf868e144ff refers to a dead (removed) revision in file `lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/transition/Transition.as'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/transition/TransitionComponent.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/transition/TransitionComponent.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/transition/TransitionComponent.as (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -0,0 +1,42 @@ +package org.lamsfoundation.lams.author.components.transition +{ + import com.dncompute.graphics.GraphicsUtil; + + import flash.geom.Point; + + public class TransitionComponent extends DrawingTool + { + + + public function TransitionComponent() + { + } + + override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { + + var origin:Point = new Point(startX,startY); + var destination:Point = new Point(endX,endY); + + var lineThickness:Number = 2; + var lineColor:Number = 0x999999; + var lineAlpha:Number = 1; + + // Find the middle point to draw the arrow + var middle:Point = Point.interpolate(origin, destination, 0.4); + var middle1:Point = Point.interpolate(origin, destination, 0.41); + + // Draw an arrow to half-way + graphics.clear(); + graphics.beginFill(lineColor,lineAlpha); + GraphicsUtil.drawArrow(graphics,origin,middle, {shaftThickness:lineThickness,headWidth:15,headLength:15, shaftPosition:0,edgeControlPosition:0.5}); + + // Draw the rest of the line + graphics.lineStyle(2, 0x999999, 1); + graphics.moveTo(middle1.x,middle1.y); + graphics.lineTo(endX,endY); + parent.setChildIndex(this, 0); + + } + + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as =================================================================== diff -u -re11155f5e0c1a923e08fcd2ce2f57873bc1c6904 -r3fb93ca162c53177b3ddfdf836c47bf868e144ff --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as (.../Constants.as) (revision e11155f5e0c1a923e08fcd2ce2f57873bc1c6904) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as (.../Constants.as) (revision 3fb93ca162c53177b3ddfdf836c47bf868e144ff) @@ -17,5 +17,14 @@ public static const CURSOR_STATE_TRANSITION:int = 2; public static const CURSOR_STATE_DATAFLOW:int = 3; public static const CURSOR_STATE_HELP:int = 4; + + + 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; } } \ No newline at end of file