Index: lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as =================================================================== diff -u -r85783d3f1adaa19123d31644844a41c9179fcd92 -r0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac --- lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as (.../CanvasView.as) (revision 85783d3f1adaa19123d31644844a41c9179fcd92) +++ lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as (.../CanvasView.as) (revision 0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac) @@ -28,6 +28,7 @@ import org.lamsfoundation.lams.authoring.* import org.lamsfoundation.lams.common.dict.* import org.lamsfoundation.lams.common.mvc.* +import org.lamsfoundation.lams.common.CommonCanvasView import com.polymercode.Draw; import mx.controls.* import mx.managers.* @@ -41,7 +42,7 @@ * Relects changes in the CanvasModel */ -class org.lamsfoundation.lams.authoring.cv.CanvasView extends AbstractView{ +class org.lamsfoundation.lams.authoring.cv.CanvasView extends CommonCanvasView { //constants: private var GRID_HEIGHT:Number; private var GRID_WIDTH:Number; @@ -414,43 +415,7 @@ return s; } - private function highlightActivity(cm:CanvasModel){ - Debugger.log('running..',Debugger.CRITICAL,'highlightActivity','CanvasView'); - var ca = CanvasActivity(cm.selectedItem); - var a:Activity = ca.activity; - // deselect previously selected item - if(cm.prevSelectedItem != null) { - // if child of an complex activity is previously selected, it is easiest to clear all the children - if(cm.prevSelectedItem.activity.parentUIID != null) { - var caComplex = cm.activitiesDisplayed.get(cm.prevSelectedItem.activity.parentUIID); - caComplex.refreshChildren(); - } else { - var dca:CanvasActivity = cm.activitiesDisplayed.get(cm.prevSelectedItem.activity.activityUIID); - dca.setSelected(false); - } - } - - - //try to cast the selected item to see what we have (instance of des not seem to work) - if(CanvasActivity(cm.selectedItem) != null){ - Debugger.log('Its a canvas activity',4,'highlightActivity','CanvasView'); - ca.setSelected(true); - - }else if(CanvasTransition(cm.selectedItem) != null){ - var ct = CanvasTransition(cm.selectedItem); - var t:Transition = ct.transition; - Debugger.log('Its a canvas transition',4,'highlightActivity','CanvasView'); - - - - }else{ - Debugger.log('Its a something we dont know',Debugger.CRITICAL,'updateItemProperties','PropertyInspector'); - - } - } - - /** * Create a popup dialog to set transition parameters * @param pos - Position, either 'centre' or an object containing x + y coordinates Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as =================================================================== diff -u -r9f46456951a80c8926d8b6e209bc51864ce30aa2 -r0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 9f46456951a80c8926d8b6e209bc51864ce30aa2) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac) @@ -67,6 +67,8 @@ private var ttHolder:MovieClip; private var _monitor:Monitor; private var _selectedItem:Object; // the currently selected thing - could be activity, transition etc. + private var _prevSelectedItem:Object; + // add model data private var _activeSeq:Sequence; private var _lastSelectedSeq:Sequence; @@ -845,6 +847,7 @@ */ private function setSelectedItem(newselectItem:Object){ + prevSelectedItem = _selectedItem; _selectedItem = newselectItem; broadcastViewUpdate("SELECTED_ITEM"); } @@ -867,7 +870,6 @@ return _selectedItem; } - public function setSelectedTab(tabID:Number){ selectedTab = tabID; } @@ -876,6 +878,15 @@ return selectedTab; } + public function set prevSelectedItem (oldselectItem:Object):Void { + _prevSelectedItem = oldselectItem; + } + + public function get prevSelectedItem():Object { + return _prevSelectedItem; + } + + public function get learnersLoaded():Boolean{ return _learnersLoaded; } Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as =================================================================== diff -u -r9ab50c7ac0968734ac995676cdba54f0c80bbeed -r0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision 9ab50c7ac0968734ac995676cdba54f0c80bbeed) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision 0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac) @@ -48,7 +48,7 @@ * Reflects changes in the MonitorModel */ -class org.lamsfoundation.lams.monitoring.mv.tabviews.MonitorTabView extends AbstractView{ +class org.lamsfoundation.lams.monitoring.mv.tabviews.MonitorTabView extends CommonCanvasView{ public static var _tabID:Number = 1; private var _className = "MonitorTabView"; //constants: @@ -301,28 +301,7 @@ //var mcontroller = getController(); mm.broadcastViewUpdate("EXPORTSHOWHIDE", true) } - - private function highlightActivity(mm:MonitorModel){ - Debugger.log('running..',Debugger.CRITICAL,'highlightActivity','MonitorTabView'); - //deselect everything else - var CAsArray:Array = mm.activitiesDisplayed.values(); - Debugger.log('CAsArray:'+CAsArray.length,Debugger.CRITICAL,'highlightActivity','MonitorTabView'); - for(var i=0; i < CAsArray.length; i++){ - CAsArray[i].setSelected(false); - } - //try to cast the selected item to see what we have (instance of des not seem to work) - if(CanvasActivity(mm.selectedItem) != null){ - Debugger.log('Its a canvas activity',4,'highlightActivity','MonitorTabView'); - var ca = CanvasActivity(mm.selectedItem); - var a:Activity = ca.activity; - ca.setSelected(true); - - }else{ - Debugger.log('Its a something we dont know',Debugger.CRITICAL,'updateItemProperties','MonitorTabView'); - - } - } - + /** * Reloads the learner Progress and * @Param isChanged Boolean Value to pass it to setIsProgressChanged in monitor model so that it sets it to true if refresh button is clicked and sets it to fasle as soon as latest data is loaded and design is redrawn. Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r7751e82516d00dee0c62b81646ae95b154e3fdea -r0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r7751e82516d00dee0c62b81646ae95b154e3fdea -r0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac Binary files differ Index: lams_common/src/flash/org/lamsfoundation/lams/common/CommonCanvasView.as =================================================================== diff -u --- lams_common/src/flash/org/lamsfoundation/lams/common/CommonCanvasView.as (revision 0) +++ lams_common/src/flash/org/lamsfoundation/lams/common/CommonCanvasView.as (revision 0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac) @@ -0,0 +1,86 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ************************************************************************ + */ + +import org.lamsfoundation.lams.common.util.*; +import org.lamsfoundation.lams.common.mvc.*; +import org.lamsfoundation.lams.authoring.cv.*; +import org.lamsfoundation.lams.monitoring.mv.*; +import org.lamsfoundation.lams.authoring.Activity; +import org.lamsfoundation.lams.authoring.Transition; + + +/** + * Provides common services for the "canvas view" of + * a either Author or Monitor applications. + */ +class org.lamsfoundation.lams.common.CommonCanvasView extends AbstractView { + private var model:Observable; + private var controller:Controller; + + public function CommonCanvasView (m:Observable, c:Controller) { + super(m, c); + } + + public function highlightActivity(model:Observable){ + Debugger.log('running..',Debugger.CRITICAL,'highlightActivity','CommonCanvasView'); + + var m = (model instanceof MonitorModel) ? MonitorModel(model) : null; + m = (model instanceof CanvasModel) ? CanvasModel(model) : m; + + if(m != null) { + + var ca = CanvasActivity(m.selectedItem); + var a:Activity = ca.activity; + + // deselect previously selected item + if(m.prevSelectedItem != null) { + // if child of an complex activity is previously selected, it is easiest to clear all the children + if(m.prevSelectedItem.activity.parentUIID != null) { + var caComplex = m.activitiesDisplayed.get(m.prevSelectedItem.activity.parentUIID); + caComplex.refreshChildren(); + } else { + var dca:CanvasActivity = m.activitiesDisplayed.get(m.prevSelectedItem.activity.activityUIID); + dca.setSelected(false); + } + } + + + //try to cast the selected item to see what we have (instance of des not seem to work) + if(CanvasActivity(m.selectedItem) != null){ + Debugger.log('Its a canvas activity',4,'highlightActivity','CommonCanvasView'); + ca.setSelected(true); + + }else if(CanvasTransition(m.selectedItem) != null){ + var ct = CanvasTransition(m.selectedItem); + var t:Transition = ct.transition; + Debugger.log('Its a canvas transition',4,'highlightActivity','CommonCanvasView'); + + }else{ + Debugger.log('Its a something we dont know',Debugger.CRITICAL,'highlightActivity','CommonCanvasView'); + + } + + } + } + +} \ No newline at end of file Index: lams_monitoring/web/lams_monitoring.swf =================================================================== diff -u -rdeba4919bbf6ca0f31cec49ddb67b888d416b60c -r0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac Binary files differ Index: lams_monitoring/web/lams_monitoring_library.swf =================================================================== diff -u -rdeba4919bbf6ca0f31cec49ddb67b888d416b60c -r0d9ed62ea052e803ebcd6499ab55cfcffcc5ebac Binary files differ