Index: lams_flex/LamsAuthor/src/LamsAuthor.mxml =================================================================== diff -u -r60b2439a6205536482d65d00c64c18be2c744ad1 -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/LamsAuthor.mxml (.../LamsAuthor.mxml) (revision 60b2439a6205536482d65d00c64c18be2c744ad1) +++ lams_flex/LamsAuthor/src/LamsAuthor.mxml (.../LamsAuthor.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -36,12 +36,6 @@ // Learning library xml public var learningLibrary:Dictionary; - // 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; - // lang code default en_AU public var locale:String = "en_AU"; @@ -75,25 +69,6 @@ mainMap.init(); } - - - [Embed("assets/icons/transition.png")] - public var transitionCursor:Class; - - public function changeCursorState(state:int):void{ - cursorState = state; - CursorManager.removeCursor(CursorManager.currentCursorID); - switch (cursorState) { - case Constants.CURSOR_STATE_NORMAL: - break; - case Constants.CURSOR_STATE_TRANSITION: - CursorManager.setCursor(transitionCursor); - break; - } - - - } - ]]> Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/Bin.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/Bin.mxml (.../Bin.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/Bin.mxml (.../Bin.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -7,6 +7,7 @@ Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasBox.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasBox.mxml (.../CanvasBox.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/CanvasBox.mxml (.../CanvasBox.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -80,8 +80,8 @@ // Deselect the current activity protected function click(event:MouseEvent):void { - if (Application.application.selectedActivity != null && !(event.currentTarget is ActivityComponent)) { - Application.application.selectedActivity.deSelectActivity(); + if (event.currentTarget is ActivityComponent) { + AuthorController.instance.deSelectActivityComponent(); } } Fisheye: Tag 3444f7cd21be73f0284515ef8f821ad9320b54a0 refers to a dead (removed) revision in file `lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibrary2.mxml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent.mxml (.../LearningLibraryEntryComponent.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent.mxml (.../LearningLibraryEntryComponent.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -3,11 +3,15 @@ width="100%" height="25" verticalAlign="middle" horizontalGap="0" - mouseMove="mouseMoveHandler(event)" + mouseDown="mouseDown(event)" > Fisheye: Tag 3444f7cd21be73f0284515ef8f821ad9320b54a0 refers to a dead (removed) revision in file `lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/LearningLibraryEntryComponent2.mxml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/PropertyInspector.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/PropertyInspector.mxml (.../PropertyInspector.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/PropertyInspector.mxml (.../PropertyInspector.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -17,6 +17,7 @@ groupActivity.groupNames.length) { - groupActivity.groupNames.addItem(Application.application.dictionary.getLabel('group_btn') + " " + groupActivity.numGroups) - } - - if (groupActivity.numGroups < groupActivity.groupNames.length) { - groupActivity.groupNames.removeItemAt(groupActivity.groupNames.length - 1); - } - } - - } - - private function openNameGroupsWindow():void { - nameGroupsWindow.openWindow(); - } - ]]> - + + + + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml (.../ActivityComponent.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponent.mxml (.../ActivityComponent.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -3,6 +3,7 @@ mouseDown="mouseDown(event)" mouseOver="mouseOver(event)" mouseOut="mouseOut(event)" + mouseMove="mouseMove(event)" click="click(event)" > @@ -13,10 +14,12 @@ - + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponentFactory.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponentFactory.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ActivityComponentFactory.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,65 @@ +package org.lamsfoundation.lams.author.components.activity +{ + import mx.core.IUIComponent; + + import org.lamsfoundation.lams.author.components.LearningLibraryEntryComponent; + import org.lamsfoundation.lams.author.components.activity.group.GroupActivityComponent; + import org.lamsfoundation.lams.author.components.toolbar.SystemToolComponent; + import org.lamsfoundation.lams.author.controller.AuthorController; + import org.lamsfoundation.lams.author.model.activity.Activity; + import org.lamsfoundation.lams.author.model.activity.ActivityFactory; + import org.lamsfoundation.lams.author.model.activity.CombinedActivity; + import org.lamsfoundation.lams.author.model.activity.GroupActivity; + import org.lamsfoundation.lams.author.model.activity.OptionalActivity; + import org.lamsfoundation.lams.author.model.activity.ToolActivity; + import org.lamsfoundation.lams.author.util.Constants; + + public class ActivityComponentFactory + { + public function ActivityComponentFactory(){} + + public static function getActivityComponentInstance(activity:Activity):ActivityComponent { + switch (activity.activityTypeID) { + case Constants.ACTIVITY_TYPE_TOOL: + var toolActivityComponent:ToolActivityComponent = new ToolActivityComponent(); + toolActivityComponent.activity = activity as ToolActivity; + return toolActivityComponent; + break; + case Constants.ACTIVITY_TYPE_COMBINED: + var combinedActivityComponent:CombinedActivityComponent = new CombinedActivityComponent(); + combinedActivityComponent.activity = activity as CombinedActivity; + combinedActivityComponent.initialize(); + return combinedActivityComponent; + break; + case Constants.ACTIVITY_TYPE_GROUPING: + var groupActivityComponent:GroupActivityComponent = new GroupActivityComponent(); + groupActivityComponent.activity = activity as GroupActivity; + groupActivityComponent.initialize(); + return groupActivityComponent; + case Constants.ACTIVITY_TYPE_OPTIONAL_ACTIVITY: + var optionalActivityComponent:OptionalActivityComponent = new OptionalActivityComponent(); + optionalActivityComponent.activity = activity as OptionalActivity; + return optionalActivityComponent; + default: + return null; + } + } + + public static function getActivityComponentInstanceFromDrag(dragInitiator:IUIComponent, UIID:int):ActivityComponent { + if (dragInitiator is LearningLibraryEntryComponent) { + var learningLibraryComponent:LearningLibraryEntryComponent = dragInitiator as LearningLibraryEntryComponent; + var activity:Activity = ActivityFactory.getActivityInstance(learningLibraryComponent.learningLibraryEntry, UIID); + var activityComponent:ActivityComponent = getActivityComponentInstance(activity); + return activityComponent; + } else if (dragInitiator is SystemToolComponent){ + var systemToolComponent:SystemToolComponent = dragInitiator as SystemToolComponent; + var systemActivity:Activity = ActivityFactory.getSystemActivityInstance(systemToolComponent, UIID); + var systemActivityComponent:ActivityComponent = getActivityComponentInstance(systemActivity); + return systemActivityComponent; + } else { + return null; + } + } + + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/CombinedActivityComponent.mxml =================================================================== diff -u -r60b2439a6205536482d65d00c64c18be2c744ad1 -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/CombinedActivityComponent.mxml (.../CombinedActivityComponent.mxml) (revision 60b2439a6205536482d65d00c64c18be2c744ad1) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/CombinedActivityComponent.mxml (.../CombinedActivityComponent.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -8,6 +8,8 @@ - - - - - + + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/OptionalActivityComponent.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/OptionalActivityComponent.mxml (.../OptionalActivityComponent.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/OptionalActivityComponent.mxml (.../OptionalActivityComponent.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -7,19 +7,14 @@ Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ToolActivityComponent.mxml =================================================================== diff -u -r60b2439a6205536482d65d00c64c18be2c744ad1 -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ToolActivityComponent.mxml (.../ToolActivityComponent.mxml) (revision 60b2439a6205536482d65d00c64c18be2c744ad1) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/ToolActivityComponent.mxml (.../ToolActivityComponent.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -20,65 +20,32 @@ import mx.controls.Label; import org.lamsfoundation.lams.author.model.learninglibrary.LearningLibraryEntry; import org.lamsfoundation.lams.author.util.Constants; + import org.lamsfoundation.lams.author.model.activity.ToolActivity; - - public var iconImage:Image; - public var tool:Tool; - public var toolContentID:int = 0; - [Bindable] - public var gradebookOutput:ToolOutputDefinition; + [Bindable] public var isTitleShown:Boolean = true; - [Bindable] - public var runOffline:Boolean; + [Bindable] public var bgColour:uint; [Bindable] - public var defineLater:Boolean; - - override public function load(UIID:int):void { - - super.load(UIID); - - var vbox:VBox = new VBox(); - vbox.setConstraintValue("verticalAlign", "middle"); - vbox.setConstraintValue("horizontalAlign", "center"); - vbox.setStyle('borderStyle', 'solid'); - vbox.setStyle('dropShadowEnabled', true); - vbox.setStyle('shadowDirection', "right"); - vbox.setStyle('cornerRadius', 10); - vbox.height = 40; - vbox.width = 50; - - switch (tool.activityCategoryID) { - case Constants.TOOL_CATEGORY_ASSESSMENT: - vbox.setStyle("backgroundColor", "#E9E2F5"); - break; - case Constants.TOOL_CATEGORY_INFORMATIVE: - vbox.setStyle("backgroundColor", "#FFEEC8"); - break; - case Constants.TOOL_CATEGORY_REFLECTIVE: - vbox.setStyle("backgroundColor", "#DDFCB1"); - break; - case Constants.TOOL_CATEGORY_COLLABORATIVE: - vbox.setStyle("backgroundColor", "#FFFDBE"); - break; - } - - iconImage = new Image(); - iconImage.height = 30; - iconImage.width = 30; - iconImage.source = tool.libraryActivityUIImage; - vbox.addChild(iconImage); - this.addChild(vbox); - - // Set the activity title - title = new Label(); - title.text = tool.toolName; - this.addChild(title); + public function get activity():ToolActivity { + return this._activity as ToolActivity; } - + public function set activity(activity:ToolActivity):void { + this._activity = activity; + } ]]> + + + + + + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/group/GroupActivityComponent.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/group/GroupActivityComponent.mxml (.../GroupActivityComponent.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/activity/group/GroupActivityComponent.mxml (.../GroupActivityComponent.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -2,41 +2,34 @@ + minHeight="50" minWidth="60"> + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/toolbar/SystemToolComponent.mxml =================================================================== diff -u -rfa44eb30e5b2d91538b2915a3b3dcfc6b039dae3 -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/toolbar/SystemToolComponent.mxml (.../SystemToolComponent.mxml) (revision fa44eb30e5b2d91538b2915a3b3dcfc6b039dae3) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/toolbar/SystemToolComponent.mxml (.../SystemToolComponent.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -4,8 +4,12 @@ Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/toolbar/ToolBar.mxml =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/toolbar/ToolBar.mxml (.../ToolBar.mxml) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/components/toolbar/ToolBar.mxml (.../ToolBar.mxml) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -10,6 +10,9 @@ + click="AuthorController.instance.changeCursorState(Constants.CURSOR_STATE_TRANSITION)" /> - - - - - - + - + - + - + Fisheye: Tag 3444f7cd21be73f0284515ef8f821ad9320b54a0 refers to a dead (removed) revision in file `lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/Activity.as'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/Activity.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/Activity.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/Activity.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,64 @@ +package org.lamsfoundation.lams.author.model.activity +{ + import org.lamsfoundation.lams.author.model.transition.Transition; + + public class Activity + { + // Activity categories + public static var CATEGORYSYSTEM:Number = 1; + public static var CATEGORYCOLLABORATION:Number = 2; + public static var CATEGORYASSESSMENT:Number = 3; + public static var CATEGORYCONTENT:Number = 4; + public static var CATEGORYSPLIT:Number = 5; + + // Grouping support types + public static var GROUPINGSUPPORTNONE:Number = 1; + public static var GROUPINGSUPPORTOPTIONAL:Number = 2; + public static var GROUPINGSUPPORTREQUIRED:Number = 3; + + // Activity Properties + public var activityID:Number; + [Bindable] public var activityUIID:int; + public var activityCategoryID:Number; + public var activityTypeID:Number; + public var learningLibraryID:Number; + public var learningDesignID:Number; + public var parentActivityID:Number; + public var parentUIID:int; + public var orderID:Number; + public var groupingID:Number; + [Bindable] public var groupingUIID:Number; + [Bindable] public var title:String; + public var description:String; + public var helpText:String; + [Bindable]public var xCoord:Number; + [Bindable]public var yCoord:Number; + public var libraryActivityUIImage:String; // Possibly not needed because of Tool object + public var createDateTime:Date; + public var groupingSupportType:Number; // Possibly not needed because of Tool object + + // Activity state + public var runOffline:Boolean; + public var applyGrouping:Boolean; + public var stopAfterActivity:Boolean; + public var readOnly:Boolean; + public var defineLater:Boolean; + public var isActivitySelected:String // Not found in wddx xml + + // Not found in wddx xml + public var objectType:String; + public var libraryActivityID:Number; + public var activityToolContentID:Number; + public var viewID:Boolean; + //public var branchView:CanvasBranchView; + public var i18nActivityTypeString:String; + + //Transitions + public var transitionTo:Transition; + public var transitionFrom:Transition; + + function Activity(activityUIID:int){ + this.activityUIID = activityUIID; + } + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/ActivityFactory.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/ActivityFactory.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/ActivityFactory.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,105 @@ +package org.lamsfoundation.lams.author.model.activity +{ + import org.lamsfoundation.lams.author.components.toolbar.SystemToolComponent; + import org.lamsfoundation.lams.author.controller.AuthorController; + import org.lamsfoundation.lams.author.model.learninglibrary.LearningLibraryEntry; + import org.lamsfoundation.lams.author.util.Constants; + + public class ActivityFactory + { + public function ActivityFactory(){} + + /** + * Gets an activity instance given a learningLibraryEntry + * @param learningLibraryEntry the learningLibraryEntry + * @param UIID the user interface id for the new activity + * @return the activity + * + */ + public static function getActivityInstance(learningLibraryEntry:LearningLibraryEntry, UIID:int):Activity { + + switch (learningLibraryEntry.activityTypeID) { + case Constants.ACTIVITY_TYPE_TOOL: + return getToolActivityInstance(learningLibraryEntry, UIID); + break; + case Constants.ACTIVITY_TYPE_COMBINED: + return getCombinedActivityInstance(learningLibraryEntry, UIID); + break; + default: + return null; + + } + } + + /** + * Gets a system activity instance given a systemToolComponent + * this is for groupings,optionals,branching,gates etc + * @param learningLibraryEntry the learningLibraryEntry + * @param UIID the user interface id for the new activity + * @return the activity + * + */ + public static function getSystemActivityInstance(systemToolComponent:SystemToolComponent, UIID:int):Activity { + + switch (systemToolComponent.activityTypeID) { + case Constants.ACTIVITY_TYPE_GROUPING: + return getGroupActivityInstance(systemToolComponent, UIID); + break; + case Constants.ACTIVITY_TYPE_OPTIONAL_ACTIVITY: + return getOptionalActivityInstance(systemToolComponent, UIID); + break; + default: + return null; + + } + } + + private static function getToolActivityInstance(learningLibraryEntry:LearningLibraryEntry, UIID:int):ToolActivity { + var toolActivity:ToolActivity = new ToolActivity(UIID); + toolActivity.tool = learningLibraryEntry.toolTemplates[0]; + toolActivity.title = toolActivity.tool.toolName; + return toolActivity; + } + + private static function getCombinedActivityInstance(learningLibraryEntry:LearningLibraryEntry, UIID:int):CombinedActivity { + var tool1UIID:int = UIID; + var tool2UIID:int = UIID; + if (UIID != 0) { + // this is a canvas instance, need new uuids + tool1UIID = AuthorController.instance.generateUIID(); + tool2UIID = AuthorController.instance.generateUIID(); + } + + var combinedActivity:CombinedActivity = new CombinedActivity(UIID); + combinedActivity.tool = learningLibraryEntry.toolTemplates[0]; + combinedActivity.title = combinedActivity.tool.toolName; + + // Create toolactivity 1 + var toolActivity1:ToolActivity = new ToolActivity(tool1UIID); + toolActivity1.tool = learningLibraryEntry.toolTemplates[1]; + toolActivity1.title = toolActivity1.tool.toolName; + combinedActivity.toolActivity1 = toolActivity1; + + // Create toolactivity 2 + var toolActivity2:ToolActivity = new ToolActivity(tool1UIID); + toolActivity2.tool = learningLibraryEntry.toolTemplates[2]; + toolActivity2.title = toolActivity2.tool.toolName; + combinedActivity.toolActivity2 = toolActivity2; + + return combinedActivity; + } + + private static function getGroupActivityInstance(systemToolComponent:SystemToolComponent, UIID:int):GroupActivity { + var groupActivity:GroupActivity = new GroupActivity(UIID, systemToolComponent.groupingType); + return groupActivity; + } + + private static function getOptionalActivityInstance(systemToolComponent:SystemToolComponent, UIID:int):OptionalActivity { + var optionalActivity:OptionalActivity = new OptionalActivity(UIID); + return optionalActivity; + } + + + + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/CombinedActivity.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/CombinedActivity.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/CombinedActivity.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,22 @@ +package org.lamsfoundation.lams.author.model.activity +{ + import org.lamsfoundation.lams.author.model.learninglibrary.Tool; + import org.lamsfoundation.lams.author.util.Constants; + + public class CombinedActivity extends Activity + { + [Bindable] public var tool:Tool; + + [Bindable] public var toolActivity1:ToolActivity; + [Bindable] public var toolActivity2:ToolActivity; + + + + public function CombinedActivity(activityUIID:Number) + { + super(activityUIID); + this.activityTypeID = Constants.ACTIVITY_TYPE_COMBINED; + } + + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/GroupActivity.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/GroupActivity.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/GroupActivity.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,39 @@ +package org.lamsfoundation.lams.author.model.activity +{ + import mx.collections.ArrayCollection; + import mx.core.Application; + + import org.lamsfoundation.lams.author.util.Constants; + + public class GroupActivity extends Activity + { + public var groupingType:int; + [Bindable]public var numGroups:Number = 2; + [Bindable]public var groupNames:ArrayCollection = new ArrayCollection(); + [Bindable]public var toolTip:String; + + public function GroupActivity(UIID:int, groupingType:int) + { + super(activityUIID); + this.activityTypeID = Constants.ACTIVITY_TYPE_GROUPING; + this.groupingType = groupingType; + + this.title = Application.application.dictionary.getLabel("grouping_act_title"); + this.groupNames.addItem(Application.application.dictionary.getLabel('group_btn') + " 1"); + this.groupNames.addItem(Application.application.dictionary.getLabel('group_btn') + " 2"); + + switch (groupingType) { + case Constants.GROUPING_TYPE_RANDOM: + this.toolTip = Application.application.dictionary.getLabel('pi_random_group_activity'); + break; + case Constants.GROUPING_TYPE_TEACHER_CHOSEN: + this.toolTip = Application.application.dictionary.getLabel('pi_monitor_group_activity'); + break; + case Constants.GROUPING_TYPE_STUDENT_CHOICE: + this.toolTip = Application.application.dictionary.getLabel('pi_learner_group_activity'); + break; + + } + } + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/OptionalActivity.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/OptionalActivity.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/OptionalActivity.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,23 @@ +package org.lamsfoundation.lams.author.model.activity +{ + import mx.collections.ArrayCollection; + import mx.core.Application; + + import org.lamsfoundation.lams.author.util.Constants; + + public class OptionalActivity extends Activity + { + [Bindable] public var maxOptions:int = 0; + [Bindable] public var minOptions:int = 0; + [Bindable] public var instructions:String; + + [Bindable] public var activities:ArrayCollection = new ArrayCollection(); + + public function OptionalActivity(activityUIID:Number) + { + super(activityUIID); + this.activityTypeID = Constants.ACTIVITY_TYPE_OPTIONAL_ACTIVITY; + this.title = Application.application.dictionary.getLabel('opt_activity_title'); + } + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/ToolActivity.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/ToolActivity.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/activity/ToolActivity.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,28 @@ + +package org.lamsfoundation.lams.author.model.activity +{ + import mx.collections.ArrayCollection; + + import org.lamsfoundation.lams.author.model.learninglibrary.Tool; + import org.lamsfoundation.lams.author.util.Constants; + + public class ToolActivity extends Activity { + public var toolID:Number; + public var toolContentID:Number; //generated by the LAMS server, has to do a round trip to populate them + public var gradebookToolOutputDefinitionName:String; + + public var activityEvaluations:ArrayCollection; + public var competenceMappings:ArrayCollection; // competences to which this activity is mapped + + public var useDefaultToolOutput:Boolean; + + [Bindable] public var tool:Tool; + + function ToolActivity(activityUIID:Number){ + super(activityUIID); + this.activityTypeID = Constants.ACTIVITY_TYPE_TOOL; + } + + } +} + Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/learninglibrary/LearningLibraryEntry.as =================================================================== diff -u -rd8dfc7bb7a4c77a846cfcd2cb0bc71d500df0af3 -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/learninglibrary/LearningLibraryEntry.as (.../LearningLibraryEntry.as) (revision d8dfc7bb7a4c77a846cfcd2cb0bc71d500df0af3) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/learninglibrary/LearningLibraryEntry.as (.../LearningLibraryEntry.as) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -1,59 +1,61 @@ -package org.lamsfoundation.lams.author.model.learninglibrary -{ - import mx.collections.ArrayCollection; - import mx.core.Application; - - public class LearningLibraryEntry - { - public var learningLibraryID:int; - public var title:String; - public var validFlag:Boolean; - public var toolTemplates:ArrayCollection; - public var category:int; - public var icon:String; - - // For combined tools - public var isCombined:Boolean; - public var subIcon1:String; - public var subIcon2:String; - public var subTitle1:String; - public var subTitle2:String; - - public function LearningLibraryEntry(dto:Object) - { - this.learningLibraryID = parseInt(dto.learningLibraryID); - this.title = dto.title; - this.validFlag = Boolean(dto.validFlag); - toolTemplates = new ArrayCollection(); - - for each(var toolDTO:Object in dto.templateActivities) { - var tool:Tool = new Tool(toolDTO, learningLibraryID); - this.category = tool.activityCategoryID; - toolTemplates.addItem(tool); - } - - if (toolTemplates.getItemAt(0) != null){ - this.title = toolTemplates.getItemAt(0).toolName; - this.icon = toolTemplates.getItemAt(0).libraryActivityUIImage; - } - - if (toolTemplates.length == 3) { - this.subIcon1 = toolTemplates.getItemAt(1).libraryActivityUIImage; - this.subIcon2 = toolTemplates.getItemAt(2).libraryActivityUIImage; - - this.subTitle1 = toolTemplates.getItemAt(1).toolName; - this.subTitle2 = toolTemplates.getItemAt(2).toolName; - - if (Application.application.TESTING && Application.application.TESTING_LOCAL) { - subIcon1 = "assets/test/toolimages" + subIcon1.substring(subIcon1.lastIndexOf("/")); - subIcon2 = "assets/test/toolimages" + subIcon2.substring(subIcon2.lastIndexOf("/")); - } else { - subIcon1 = Application.application.lamsURL + subIcon1; - subIcon2 = Application.application.lamsURL + subIcon2; - } - this.isCombined = true; - } - } - - } +package org.lamsfoundation.lams.author.model.learninglibrary +{ + import mx.collections.ArrayCollection; + import mx.core.Application; + + public class LearningLibraryEntry + { + public var learningLibraryID:int; + public var title:String; + public var validFlag:Boolean; + public var toolTemplates:ArrayCollection; + public var category:int; + public var icon:String; + public var activityTypeID:int; + + // For combined tools + public var isCombined:Boolean; + public var subIcon1:String; + public var subIcon2:String; + public var subTitle1:String; + public var subTitle2:String; + + public function LearningLibraryEntry(dto:Object) + { + this.learningLibraryID = parseInt(dto.learningLibraryID); + this.title = dto.title; + this.validFlag = Boolean(dto.validFlag); + toolTemplates = new ArrayCollection(); + + for each(var toolDTO:Object in dto.templateActivities) { + var tool:Tool = new Tool(toolDTO, learningLibraryID); + this.category = tool.activityCategoryID; + toolTemplates.addItem(tool); + } + + if (toolTemplates.getItemAt(0) != null){ + this.title = toolTemplates.getItemAt(0).toolName; + this.icon = toolTemplates.getItemAt(0).libraryActivityUIImage; + this.activityTypeID = parseInt(toolTemplates.getItemAt(0).activityTypeID); + } + + if (toolTemplates.length == 3) { + this.subIcon1 = toolTemplates.getItemAt(1).libraryActivityUIImage; + this.subIcon2 = toolTemplates.getItemAt(2).libraryActivityUIImage; + + this.subTitle1 = toolTemplates.getItemAt(1).toolName; + this.subTitle2 = toolTemplates.getItemAt(2).toolName; + + if (Application.application.TESTING && Application.application.TESTING_LOCAL) { + subIcon1 = "assets/test/toolimages" + subIcon1.substring(subIcon1.lastIndexOf("/")); + subIcon2 = "assets/test/toolimages" + subIcon2.substring(subIcon2.lastIndexOf("/")); + } else { + subIcon1 = Application.application.lamsURL + subIcon1; + subIcon2 = Application.application.lamsURL + subIcon2; + } + this.isCombined = true; + } + } + + } } \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/learninglibrary/Tool.as =================================================================== diff -u -r60b2439a6205536482d65d00c64c18be2c744ad1 -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/learninglibrary/Tool.as (.../Tool.as) (revision 60b2439a6205536482d65d00c64c18be2c744ad1) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/learninglibrary/Tool.as (.../Tool.as) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -3,7 +3,9 @@ import mx.collections.ArrayCollection; import mx.core.Application; + import org.lamsfoundation.lams.author.util.Constants; + /** * This class contains the information for each tool so it doesnt need to be stored * inside the ToolActivity class for each activity. @@ -19,7 +21,7 @@ public var toolName:String; public var toolDisplayName:String; public var toolSignature:String; - public var activityCategoryID:int; + [Bindable] public var activityCategoryID:int; public var description:String; public var authoringURL:String; public var monitoringURL:String; @@ -32,8 +34,10 @@ public var supportsOutputs:Boolean; public var valid:Boolean; public var groupingSupportType:int; - public var libraryActivityUIImage:String; + [Bindable] public var libraryActivityUIImage:String; public var toolOutputDefinitions:ArrayCollection; + [Bindable] public var bgColour:uint; + public var activityTypeID:int; // For tool adapter tools public var mappedServers:ArrayCollection; // List of allowable servers to show this tool for @@ -63,6 +67,7 @@ this.valid = Boolean(dto.valid); this.groupingSupportType = parseInt(dto.groupingSupportType); this.libraryActivityUIImage = dto.libraryActivityUIImage; + this.activityTypeID = dto.activityTypeID; toolOutputDefinitions = new ArrayCollection(); @@ -76,6 +81,9 @@ } else { libraryActivityUIImage = Application.application.lamsURL + libraryActivityUIImage; } + + // Work out the bg colour based on the activityCategoryID + this.bgColour = Constants.TOOL_CATEGORY_COLOURS[activityCategoryID]; } } } \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/transition/Transition.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/transition/Transition.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/transition/Transition.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,23 @@ +package org.lamsfoundation.lams.author.model.transition +{ + import org.lamsfoundation.lams.author.model.activity.Activity; + + public class Transition + { + public var transitionUUID:int; + public var toActivity:Activity; + public var fromActivity:Activity; + + [Bindable] public var endX:int; + [Bindable] public var endY:int; + + public function Transition(fromActivity:Activity, toActivity:Activity, transitionUUID:int) { + this.transitionUUID = transitionUUID; + this.fromActivity = fromActivity; + this.toActivity = toActivity; + + this.toActivity.transitionTo = this; + this.fromActivity.transitionFrom = this; + } + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/transition/TransitionFactory.as =================================================================== diff -u --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/transition/TransitionFactory.as (revision 0) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/model/transition/TransitionFactory.as (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -0,0 +1,20 @@ +package org.lamsfoundation.lams.author.model.transition +{ + import org.lamsfoundation.lams.author.model.activity.Activity; + import org.lamsfoundation.lams.author.util.Constants; + + public class TransitionFactory + { + public function TransitionFactory(){} + + public static function createTransition(fromActivity:Activity, toActivity:Activity, type:int, UIID:int):Transition { + switch (type) { + case Constants.TRANSITION_TYPE_NORMAL: + return new Transition(fromActivity, toActivity, UIID); + break; + default: + return null; + } + } + } +} \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/AuthorUtil.as =================================================================== diff -u -r09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/AuthorUtil.as (.../AuthorUtil.as) (revision 09b7412b77d263dcb1f5dc6a0ff1609796bc1ebc) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/AuthorUtil.as (.../AuthorUtil.as) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -1,7 +1,7 @@ package org.lamsfoundation.lams.author.util { - import flash.display.BitmapData; import flash.display.Bitmap; + import flash.display.BitmapData; import flash.display.DisplayObject; import flash.geom.Matrix; import flash.geom.Point; @@ -42,6 +42,16 @@ image.source = new Bitmap(getBitmapData(target)); return image; } + + public static function activitySupportsGrouping(activityTypeID:int):Boolean { + return activityTypeID != Constants.ACTIVITY_TYPE_GATE_CONDITION && + activityTypeID != Constants.ACTIVITY_TYPE_GATE_PERMISSION && + activityTypeID != Constants.ACTIVITY_TYPE_GATE_SCHEDULE && + activityTypeID != Constants.ACTIVITY_TYPE_GATE_SYNCH && + activityTypeID != Constants.ACTIVITY_TYPE_GATE_SYSTEM && + activityTypeID != Constants.ACTIVITY_TYPE_GROUPING && + activityTypeID != Constants.ACTIVITY_TYPE_REFERENCE; + } } } \ No newline at end of file Index: lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as =================================================================== diff -u -rfa44eb30e5b2d91538b2915a3b3dcfc6b039dae3 -r3444f7cd21be73f0284515ef8f821ad9320b54a0 --- lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as (.../Constants.as) (revision fa44eb30e5b2d91538b2915a3b3dcfc6b039dae3) +++ lams_flex/LamsAuthor/src/org/lamsfoundation/lams/author/util/Constants.as (.../Constants.as) (revision 3444f7cd21be73f0284515ef8f821ad9320b54a0) @@ -23,15 +23,39 @@ public static const ACTIVITY_STATE_MOUSE_OVER:int = 3; public static const ACTIVITY_STATE_SELECTED:int = 4; - public static const SYSTEM_ACTIVITY_TYPE_OPTIONAL:int = 1; - public static const SYSTEM_ACTIVITY_TYPE_OPTIONAL_SEQUENCE:int = 2; - public static const SYSTEM_ACTIVITY_TYPE_SUPPORT:int = 3; - public static const SYSTEM_ACTIVITY_TYPE_GATE:int = 4; - public static const SYSTEM_ACTIVITY_TYPE_BRANCH:int = 5; - public static const SYSTEM_ACTIVITY_TYPE_CONVERGE:int = 6; - public static const SYSTEM_ACTIVITY_TYPE_GROUP_RANDOM:int = 7; - public static const SYSTEM_ACTIVITY_TYPE_GROUP_MONITOR:int = 8; - public static const SYSTEM_ACTIVITY_TYPE_GROUP_LEARNER:int = 9; - + public static const TOOL_CATEGORY_COLOURS:Object = { + 2:0xFFFDBE, + 3:0xE9E2F5, + 6:0xDDFCB1, + 4:0xFFEEC8 + }; + + // Activity types + public static const ACTIVITY_TYPE_TOOL:int = 1; + public static const ACTIVITY_TYPE_GROUPING:int = 2; + public static const ACTIVITY_TYPE_GATE_SYNCH:int = 3; + public static const ACTIVITY_TYPE_GATE_SCHEDULE:int = 4; + public static const ACTIVITY_TYPE_GATE_PERMISSION:int = 5; + public static const ACTIVITY_TYPE_COMBINED:int = 6; + public static const ACTIVITY_TYPE_OPTIONAL_ACTIVITY:int = 7; + public static const ACTIVITY_TYPE_SEQUENCE:int = 8; + public static const ACTIVITY_TYPE_GATE_SYSTEM:int = 9; + public static const ACTIVITY_TYPE_BRANCHING_CHOSEN:int = 10; + public static const ACTIVITY_TYPE_BRANCHING_GROUP:int = 11; + public static const ACTIVITY_TYPE_BRANCHING_TOOL:int = 12; + public static const ACTIVITY_TYPE_OPTIONAL_SEQUENCE:int = 13; + public static const ACTIVITY_TYPE_GATE_CONDITION:int = 14; + public static const ACTIVITY_TYPE_REFERENCE:int = 15; + + // Grouping type + public static const GROUPING_TYPE_RANDOM:int = 1; + public static const GROUPING_TYPE_TEACHER_CHOSEN:int = 2; + public static const GROUPING_TYPE_STUDENT_CHOICE:int = 3; + + // Transition type + public static const TRANSITION_TYPE_NORMAL:int = 1; + public static const TRANSITION_TYPE_BRANCH:int = 2; + public static const TRANSITION_TYPE_DATA_FLOW:int = 3; + } } \ No newline at end of file