Index: lams_central/src/flash/org/lamsfoundation/lams/learner/lb/Library.as =================================================================== diff -u -r193aeb8d5fc09aafc3973a62b657455de089a257 -rd217a4fa52cc46384cbc7c82d2d90425f1a75911 --- lams_central/src/flash/org/lamsfoundation/lams/learner/lb/Library.as (.../Library.as) (revision 193aeb8d5fc09aafc3973a62b657455de089a257) +++ lams_central/src/flash/org/lamsfoundation/lams/learner/lb/Library.as (.../Library.as) (revision d217a4fa52cc46384cbc7c82d2d90425f1a75911) @@ -22,8 +22,9 @@ */ import org.lamsfoundation.lams.learner.Application; -import org.lamsfoundation.lams.learner.lb.*; -import org.lamsfoundation.lams.learner.ls.Lesson; +import org.lamsfoundation.lams.common.Sequence; +import org.lamsfoundation.lams.authoring.DesignDataModel; +import org.lamsfoundation.lams.learner.lb.*; import org.lamsfoundation.lams.common.util.*; import mx.managers.*; /** @@ -67,16 +68,16 @@ libraryView = LibraryView(libraryView_mc); libraryView.init(libraryModel,undefined); - + trace(libraryView); libraryView_mc.addEventListener('load',Proxy.create(this,viewLoaded)); //Register view with model to receive update events libraryModel.addObserver(libraryView); //Set the position by setting the model which will call update on the view - libraryModel.setPosition(x,y); + libraryModel.setPosition(x,y); + libraryModel.setSize(null,Stage.height-y); - } @@ -92,43 +93,45 @@ Debugger.log('viewLoaded called',Debugger.GEN,'viewLoaded','Library'); if(evt.type=='load') { - getActiveLessons(); + getActiveSequences(); }else { //Raise error for unrecognized event } } - public function getActiveLessons():Void { - trace('getting active lessons...'); + public function getActiveSequences():Void { + trace('getting active sequences...'); - var callback:Function = Proxy.create(this,setActiveLessons); + var callback:Function = Proxy.create(this,setActiveSequences); // do request - Application.getInstance().getComms().getRequest('learning/learner.do?method=getActiveLessons&userID='+_root.userID, callback, false); + Application.getInstance().getComms().getRequest('learning/learner.do?method=getActiveLessons&userId='+_root.userID, callback, false); } - private function setActiveLessons(lessons:Array):Void { - trace('received active lesson data back...'); - // get data and create Lesson obj's + private function setActiveSequences(seqs:Array):Void { + trace('received active lesson/seq data back...'); + // get data and create Sequence obj's - Debugger.log('Received active sequences (lessons) array length:'+lessons.length,4,'setActiveLessons','Library'); + Debugger.log('Received active sequences (lessons) array length:'+seqs.length,4,'setActiveLessons','Library'); var lns = new Array(); // go through list of DTO's and make Lesson objects to add to hash map - for(var i=0; i< lessons.length; i++){ - var ln:Object = lessons[i]; + for(var i=0; i< seqs.length; i++){ + var s:Object = seqs[i]; - var sp_mc:MovieClip = libraryView.getScrollPane(); - sp_mc.contentPath = "empty_mc"; - trace(sp_mc); - trace(sp_mc.content); - var lesson:Lesson = new Lesson(sp_mc.content, LESSON_X, LESSON_Y+(LESSON_H*i), libraryView); - lesson.populateFromDTO(ln); - trace('pushing lesson with id: ' + lesson.getLessonID()); - lns.push(lesson); + //var sp_mc:MovieClip = libraryView.getScrollPane(); + //sp_mc.contentPath = "empty_mc"; + //trace(sp_mc); + //trace(sp_mc.content); + //var lesson:Lesson = new Lesson(sp_mc.content, LESSON_X, LESSON_Y+(LESSON_H*i), libraryView); + + var seq:Sequence = new Sequence(); + seq.populateFromDTO(s); + trace('pushing seq with id: ' + seq.getSequenceID()); + lns.push(seq); } //sets these in the toolkit model in a hashtable by lib id @@ -153,9 +156,87 @@ libraryModel.setPosition(x,y); } - public function getLesson(lessonId:Number):Lesson { - return libraryModel.getLesson(lessonId); + public function getSequence(seqId:Number):Sequence { + return libraryModel.getSequence(seqId); + } + + public function select(seq:Sequence):Void { + var libraryController = libraryView.getController(); + libraryController.selectSequence(seq); } + + public function joinSequence(seq:Object):Boolean { + + var callback:Function = Proxy.create(this,startSequence); + + // call action + var seqId:Number = seq.getSequenceID(); + + // do request + Application.getInstance().getComms().getRequest('learning/learner.do?method=joinLesson&userId='+_root.userID+'&lessonId='+String(seqId), callback, false); + + // get Learning Design for lesson + openLearningDesign(seq); + + return true; + } + + public function exitSequence(seq:Object):Boolean { + var callback:Function = Proxy.create(this,closeSequence); + + // call action + var seqId:Number = seq.getSequenceID(); + + // do request + Application.getInstance().getComms().getRequest('learning/learner.do?method=exitLesson&lessonID='+String(seqId), callback, false); + + return true; + } + + private function startSequence(pkt:Object){ + trace('received message back from server aftering joining lesson...'); + + // check was successful join + + // start the selected sequence + var seq:Sequence = Sequence(libraryModel.getSelectedSequence()); + trace(seq); + trace('pktobject value: '+String(pkt)); + getURL('http://localhost:8080/lams/learning'+String(pkt)+'?progressId='+seq.getSequenceID(),'_blank'); + + } + + private function closeSequence(pkt:Object){ + trace('receiving message back from server...'); + + // stop current sequence + + // deactivate Progress movie + + } + + private function openLearningDesign(seq:Object){ + trace('opening learning design...'); + var designId:Number = seq.getLearningDesignID(); + + var callback:Function = Proxy.create(this,saveDataDesignModel); + + Application.getInstance().getComms().getRequest('authoring/author.do?method=getLearningDesignDetails&learningDesignID='+designId,callback, false); + + } + + private function saveDataDesignModel(learningDesignDTO:Object){ + trace('returning learning design...'); + trace('saving model data...'); + var seq:Sequence = Sequence(libraryModel.getSelectedSequence()); + var model:DesignDataModel = new DesignDataModel(); + + model.setDesign(learningDesignDTO); + seq.setLearningDesignModel(model); + + // activite Progress movie + + } //Dimension accessor methods public function get width():Number{ Index: lams_central/src/flash/org/lamsfoundation/lams/learner/lb/LibraryController.as =================================================================== diff -u -r7b855245133f01885c4b7f1d85beb3e91675bb40 -rd217a4fa52cc46384cbc7c82d2d90425f1a75911 --- lams_central/src/flash/org/lamsfoundation/lams/learner/lb/LibraryController.as (.../LibraryController.as) (revision 7b855245133f01885c4b7f1d85beb3e91675bb40) +++ lams_central/src/flash/org/lamsfoundation/lams/learner/lb/LibraryController.as (.../LibraryController.as) (revision d217a4fa52cc46384cbc7c82d2d90425f1a75911) @@ -20,12 +20,11 @@ * http://www.gnu.org/licenses/gpl.txt * ************************************************************************ */ - +import org.lamsfoundation.lams.common.Sequence; import org.lamsfoundation.lams.common.mvc.* import org.lamsfoundation.lams.common.util.* import org.lamsfoundation.lams.learner.* -import org.lamsfoundation.lams.learner.lb.*; -import org.lamsfoundation.lams.learner.ls.Lesson; +import org.lamsfoundation.lams.learner.lb.*; /** * Controller for the sequence library @@ -47,16 +46,24 @@ /** *Called by Lesson when one in clicked - * @param lesson - the lesson that was clicked + * @param seq - the lesson/sequence that was clicked (selected) */ - public function selectLesson(lesson:Lesson):Void{ + public function selectSequence(seq:Sequence):Void{ _libraryModel = LibraryModel(model); - _libraryModel.setSelectedLesson(lesson); + _libraryModel.setSelectedSequence(seq); } - public function getActiveLessons():Void { + public function getActiveSequences():Void { _libraryModel = LibraryModel(model); - _libraryModel.getLibrary().getActiveLessons(); + _libraryModel.getLibrary().getActiveSequences(); } + + public function cellPress(evt):Void{ + trace(String(evt.target)); + trace("Item index: " + evt.itemIndex); + trace('onClick event: joining lesson...'); + var seqID:Number = evt.target.getItemAt(evt.itemIndex).ID; + selectSequence(_libraryModel.getSequence(seqID)); + } } \ No newline at end of file Index: lams_central/src/flash/org/lamsfoundation/lams/learner/lb/LibraryModel.as =================================================================== diff -u -r193aeb8d5fc09aafc3973a62b657455de089a257 -rd217a4fa52cc46384cbc7c82d2d90425f1a75911 --- lams_central/src/flash/org/lamsfoundation/lams/learner/lb/LibraryModel.as (.../LibraryModel.as) (revision 193aeb8d5fc09aafc3973a62b657455de089a257) +++ lams_central/src/flash/org/lamsfoundation/lams/learner/lb/LibraryModel.as (.../LibraryModel.as) (revision d217a4fa52cc46384cbc7c82d2d90425f1a75911) @@ -22,7 +22,7 @@ */ import org.lamsfoundation.lams.learner.lb.*; -import org.lamsfoundation.lams.learner.ls.Lesson; +import org.lamsfoundation.lams.common.Sequence; import org.lamsfoundation.lams.common.util.Observable; import org.lamsfoundation.lams.common.util.*; import org.lamsfoundation.lams.learner.Application; @@ -46,26 +46,31 @@ /** * View state data */ - private var _currentlySelectedLesson:Lesson; - private var _lastSelectedLesson:Lesson; + private var _currentlySelectedSequence:Sequence; + private var _lastSelectedSequence:Sequence; /** - * Sequence (Lesson) Library container + * Sequence (Sequence) Library container * */ private var _learningSequences:Hashtable; /** * constants - */ + */ + public static var CREATE_STATE_ID:Number = 1; public static var NEW_STATE_ID:Number = 2; public static var STARTED_STATE_ID:Number = 3; + public static var SUSPENDED_STATE_ID:Number = 4; public static var FINISHED_STATE_ID:Number = 5; + public static var ARCHIVED_STATE_ID:Number = 6; + public static var REMOVED_STATE_ID:Number = 7; /** * Constructor. */ - public function LibraryModel (library:Library){ + public function LibraryModel (library:Library){ + trace('new lib model created...'); _library = library; _learningSequences = new Hashtable(); } @@ -76,8 +81,8 @@ _learningSequences.clear(); for(var i=0; i