Index: lams_flash/src/central/flex/BranchManager/.actionScriptProperties
===================================================================
diff -u
--- lams_flash/src/central/flex/BranchManager/.actionScriptProperties (revision 0)
+++ lams_flash/src/central/flex/BranchManager/.actionScriptProperties (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_flash/src/central/flex/BranchManager/.flexProperties
===================================================================
diff -u
--- lams_flash/src/central/flex/BranchManager/.flexProperties (revision 0)
+++ lams_flash/src/central/flex/BranchManager/.flexProperties (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,2 @@
+
+
Index: lams_flash/src/central/flex/BranchManager/.project
===================================================================
diff -u
--- lams_flash/src/central/flex/BranchManager/.project (revision 0)
+++ lams_flash/src/central/flex/BranchManager/.project (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,25 @@
+
+
+ BranchManager
+
+
+
+
+
+ com.adobe.flexbuilder.project.flexbuilder
+
+
+
+
+
+ com.adobe.flexbuilder.project.flexnature
+ com.adobe.flexbuilder.project.actionscriptnature
+
+
+
+ bin-release1
+ 2
+ D:/LAMS_HEAD/lams_monitoring/web/branching
+
+
+
Index: lams_flash/src/central/flex/BranchManager/html-template/AC_OETags.js
===================================================================
diff -u
--- lams_flash/src/central/flex/BranchManager/html-template/AC_OETags.js (revision 0)
+++ lams_flash/src/central/flex/BranchManager/html-template/AC_OETags.js (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,278 @@
+// Flash Player Version Detection - Rev 1.6
+// Detect Client Browser type
+// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
+var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
+var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
+var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
+
+function ControlVersion()
+{
+ var version;
+ var axo;
+ var e;
+
+ // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
+
+ try {
+ // version will be set for 7.X or greater players
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
+ version = axo.GetVariable("$version");
+ } catch (e) {
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 6.X players only
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
+
+ // installed player is some revision of 6.0
+ // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
+ // so we have to be careful.
+
+ // default to the first public version
+ version = "WIN 6,0,21,0";
+
+ // throws if AllowScripAccess does not exist (introduced in 6.0r47)
+ axo.AllowScriptAccess = "always";
+
+ // safe to call for 6.0r47 or greater
+ version = axo.GetVariable("$version");
+
+ } catch (e) {
+ }
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 4.X or 5.X player
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
+ version = axo.GetVariable("$version");
+ } catch (e) {
+ }
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 3.X player
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
+ version = "WIN 3,0,18,0";
+ } catch (e) {
+ }
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 2.X player
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
+ version = "WIN 2,0,0,11";
+ } catch (e) {
+ version = -1;
+ }
+ }
+
+ return version;
+}
+
+// JavaScript helper required to detect Flash Player PlugIn version information
+function GetSwfVer(){
+ // NS/Opera version >= 3 check for Flash plugin in plugin array
+ var flashVer = -1;
+
+ if (navigator.plugins != null && navigator.plugins.length > 0) {
+ if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
+ var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
+ var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
+ var descArray = flashDescription.split(" ");
+ var tempArrayMajor = descArray[2].split(".");
+ var versionMajor = tempArrayMajor[0];
+ var versionMinor = tempArrayMajor[1];
+ var versionRevision = descArray[3];
+ if (versionRevision == "") {
+ versionRevision = descArray[4];
+ }
+ if (versionRevision[0] == "d") {
+ versionRevision = versionRevision.substring(1);
+ } else if (versionRevision[0] == "r") {
+ versionRevision = versionRevision.substring(1);
+ if (versionRevision.indexOf("d") > 0) {
+ versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
+ }
+ } else if (versionRevision[0] == "b") {
+ versionRevision = versionRevision.substring(1);
+ }
+ var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
+ }
+ }
+ // MSN/WebTV 2.6 supports Flash 4
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
+ // WebTV 2.5 supports Flash 3
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
+ // older WebTV supports Flash 2
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
+ else if ( isIE && isWin && !isOpera ) {
+ flashVer = ControlVersion();
+ }
+ return flashVer;
+}
+
+// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
+function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
+{
+ versionStr = GetSwfVer();
+ if (versionStr == -1 ) {
+ return false;
+ } else if (versionStr != 0) {
+ if(isIE && isWin && !isOpera) {
+ // Given "WIN 2,0,0,11"
+ tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
+ tempString = tempArray[1]; // "2,0,0,11"
+ versionArray = tempString.split(","); // ['2', '0', '0', '11']
+ } else {
+ versionArray = versionStr.split(".");
+ }
+ var versionMajor = versionArray[0];
+ var versionMinor = versionArray[1];
+ var versionRevision = versionArray[2];
+
+ // is the major.revision >= requested major.revision AND the minor version >= requested minor
+ if (versionMajor > parseFloat(reqMajorVer)) {
+ return true;
+ } else if (versionMajor == parseFloat(reqMajorVer)) {
+ if (versionMinor > parseFloat(reqMinorVer))
+ return true;
+ else if (versionMinor == parseFloat(reqMinorVer)) {
+ if (versionRevision >= parseFloat(reqRevision))
+ return true;
+ }
+ }
+ return false;
+ }
+}
+
+function AC_AddExtension(src, ext)
+{
+ if (src.indexOf('?') != -1)
+ return src.replace(/\?/, ext+'?');
+ else
+ return src + ext;
+}
+
+function AC_Generateobj(objAttrs, params, embedAttrs)
+{
+ var str = '';
+ if (isIE && isWin && !isOpera)
+ {
+ str += '';
+ } else {
+ str += '';
+ }
+
+ document.write(str);
+}
+
+function AC_FL_RunContent(){
+ var ret =
+ AC_GetArgs
+ ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
+ , "application/x-shockwave-flash"
+ );
+ AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
+}
+
+function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
+ var ret = new Object();
+ ret.embedAttrs = new Object();
+ ret.params = new Object();
+ ret.objAttrs = new Object();
+ for (var i=0; i < args.length; i=i+2){
+ var currArg = args[i].toLowerCase();
+
+ switch (currArg){
+ case "classid":
+ break;
+ case "pluginspage":
+ ret.embedAttrs[args[i]] = args[i+1];
+ break;
+ case "src":
+ case "movie":
+ args[i+1] = AC_AddExtension(args[i+1], ext);
+ ret.embedAttrs["src"] = args[i+1];
+ ret.params[srcParamName] = args[i+1];
+ break;
+ case "onafterupdate":
+ case "onbeforeupdate":
+ case "onblur":
+ case "oncellchange":
+ case "onclick":
+ case "ondblClick":
+ case "ondrag":
+ case "ondragend":
+ case "ondragenter":
+ case "ondragleave":
+ case "ondragover":
+ case "ondrop":
+ case "onfinish":
+ case "onfocus":
+ case "onhelp":
+ case "onmousedown":
+ case "onmouseup":
+ case "onmouseover":
+ case "onmousemove":
+ case "onmouseout":
+ case "onkeypress":
+ case "onkeydown":
+ case "onkeyup":
+ case "onload":
+ case "onlosecapture":
+ case "onpropertychange":
+ case "onreadystatechange":
+ case "onrowsdelete":
+ case "onrowenter":
+ case "onrowexit":
+ case "onrowsinserted":
+ case "onstart":
+ case "onscroll":
+ case "onbeforeeditfocus":
+ case "onactivate":
+ case "onbeforedeactivate":
+ case "ondeactivate":
+ case "type":
+ case "codebase":
+ ret.objAttrs[args[i]] = args[i+1];
+ break;
+ case "id":
+ case "width":
+ case "height":
+ case "align":
+ case "vspace":
+ case "hspace":
+ case "class":
+ case "title":
+ case "accesskey":
+ case "name":
+ case "tabindex":
+ ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
+ break;
+ default:
+ ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
+ }
+ }
+ ret.objAttrs["classid"] = classid;
+ if (mimeType) ret.embedAttrs["type"] = mimeType;
+ return ret;
+}
+
+
Index: lams_flash/src/central/flex/BranchManager/html-template/index.template.html
===================================================================
diff -u
--- lams_flash/src/central/flex/BranchManager/html-template/index.template.html (revision 0)
+++ lams_flash/src/central/flex/BranchManager/html-template/index.template.html (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+${title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_flash/src/central/flex/BranchManager/html-template/playerProductInstall.swf
===================================================================
diff -u
Binary files differ
Index: lams_flash/src/central/flex/BranchManager/src/BranchManager.mxml
===================================================================
diff -u
--- lams_flash/src/central/flex/BranchManager/src/BranchManager.mxml (revision 0)
+++ lams_flash/src/central/flex/BranchManager/src/BranchManager.mxml (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,422 @@
+
+
+
+
+
+
+
+ getBranches
+
+
+
+
+
+
+
+ getClassMembersNotGrouped
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ../bin-debug/loading_small.swf
+
+
+
+
Index: lams_flash/src/central/flex/GroupManager/.actionScriptProperties
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/.actionScriptProperties (revision 0)
+++ lams_flash/src/central/flex/GroupManager/.actionScriptProperties (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_flash/src/central/flex/GroupManager/.flexProperties
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/.flexProperties (revision 0)
+++ lams_flash/src/central/flex/GroupManager/.flexProperties (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,2 @@
+
+
Index: lams_flash/src/central/flex/GroupManager/.project
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/.project (revision 0)
+++ lams_flash/src/central/flex/GroupManager/.project (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,25 @@
+
+
+ GroupManager
+
+
+
+
+
+ com.adobe.flexbuilder.project.flexbuilder
+
+
+
+
+
+ com.adobe.flexbuilder.project.flexnature
+ com.adobe.flexbuilder.project.actionscriptnature
+
+
+
+ bin-release1
+ 2
+ D:/LAMS_HEAD/lams_monitoring/web/grouping
+
+
+
Index: lams_flash/src/central/flex/GroupManager/.settings/org.eclipse.core.resources.prefs
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/.settings/org.eclipse.core.resources.prefs (revision 0)
+++ lams_flash/src/central/flex/GroupManager/.settings/org.eclipse.core.resources.prefs (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,3 @@
+#Wed Nov 05 09:59:00 EST 2008
+eclipse.preferences.version=1
+encoding/=utf-8
Index: lams_flash/src/central/flex/GroupManager/html-template/AC_OETags.js
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/html-template/AC_OETags.js (revision 0)
+++ lams_flash/src/central/flex/GroupManager/html-template/AC_OETags.js (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,278 @@
+// Flash Player Version Detection - Rev 1.6
+// Detect Client Browser type
+// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
+var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
+var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
+var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
+
+function ControlVersion()
+{
+ var version;
+ var axo;
+ var e;
+
+ // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
+
+ try {
+ // version will be set for 7.X or greater players
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
+ version = axo.GetVariable("$version");
+ } catch (e) {
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 6.X players only
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
+
+ // installed player is some revision of 6.0
+ // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
+ // so we have to be careful.
+
+ // default to the first public version
+ version = "WIN 6,0,21,0";
+
+ // throws if AllowScripAccess does not exist (introduced in 6.0r47)
+ axo.AllowScriptAccess = "always";
+
+ // safe to call for 6.0r47 or greater
+ version = axo.GetVariable("$version");
+
+ } catch (e) {
+ }
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 4.X or 5.X player
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
+ version = axo.GetVariable("$version");
+ } catch (e) {
+ }
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 3.X player
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
+ version = "WIN 3,0,18,0";
+ } catch (e) {
+ }
+ }
+
+ if (!version)
+ {
+ try {
+ // version will be set for 2.X player
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
+ version = "WIN 2,0,0,11";
+ } catch (e) {
+ version = -1;
+ }
+ }
+
+ return version;
+}
+
+// JavaScript helper required to detect Flash Player PlugIn version information
+function GetSwfVer(){
+ // NS/Opera version >= 3 check for Flash plugin in plugin array
+ var flashVer = -1;
+
+ if (navigator.plugins != null && navigator.plugins.length > 0) {
+ if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
+ var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
+ var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
+ var descArray = flashDescription.split(" ");
+ var tempArrayMajor = descArray[2].split(".");
+ var versionMajor = tempArrayMajor[0];
+ var versionMinor = tempArrayMajor[1];
+ var versionRevision = descArray[3];
+ if (versionRevision == "") {
+ versionRevision = descArray[4];
+ }
+ if (versionRevision[0] == "d") {
+ versionRevision = versionRevision.substring(1);
+ } else if (versionRevision[0] == "r") {
+ versionRevision = versionRevision.substring(1);
+ if (versionRevision.indexOf("d") > 0) {
+ versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
+ }
+ } else if (versionRevision[0] == "b") {
+ versionRevision = versionRevision.substring(1);
+ }
+ var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
+ }
+ }
+ // MSN/WebTV 2.6 supports Flash 4
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
+ // WebTV 2.5 supports Flash 3
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
+ // older WebTV supports Flash 2
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
+ else if ( isIE && isWin && !isOpera ) {
+ flashVer = ControlVersion();
+ }
+ return flashVer;
+}
+
+// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
+function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
+{
+ versionStr = GetSwfVer();
+ if (versionStr == -1 ) {
+ return false;
+ } else if (versionStr != 0) {
+ if(isIE && isWin && !isOpera) {
+ // Given "WIN 2,0,0,11"
+ tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
+ tempString = tempArray[1]; // "2,0,0,11"
+ versionArray = tempString.split(","); // ['2', '0', '0', '11']
+ } else {
+ versionArray = versionStr.split(".");
+ }
+ var versionMajor = versionArray[0];
+ var versionMinor = versionArray[1];
+ var versionRevision = versionArray[2];
+
+ // is the major.revision >= requested major.revision AND the minor version >= requested minor
+ if (versionMajor > parseFloat(reqMajorVer)) {
+ return true;
+ } else if (versionMajor == parseFloat(reqMajorVer)) {
+ if (versionMinor > parseFloat(reqMinorVer))
+ return true;
+ else if (versionMinor == parseFloat(reqMinorVer)) {
+ if (versionRevision >= parseFloat(reqRevision))
+ return true;
+ }
+ }
+ return false;
+ }
+}
+
+function AC_AddExtension(src, ext)
+{
+ if (src.indexOf('?') != -1)
+ return src.replace(/\?/, ext+'?');
+ else
+ return src + ext;
+}
+
+function AC_Generateobj(objAttrs, params, embedAttrs)
+{
+ var str = '';
+ if (isIE && isWin && !isOpera)
+ {
+ str += '';
+ } else {
+ str += '';
+ }
+
+ document.write(str);
+}
+
+function AC_FL_RunContent(){
+ var ret =
+ AC_GetArgs
+ ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
+ , "application/x-shockwave-flash"
+ );
+ AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
+}
+
+function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
+ var ret = new Object();
+ ret.embedAttrs = new Object();
+ ret.params = new Object();
+ ret.objAttrs = new Object();
+ for (var i=0; i < args.length; i=i+2){
+ var currArg = args[i].toLowerCase();
+
+ switch (currArg){
+ case "classid":
+ break;
+ case "pluginspage":
+ ret.embedAttrs[args[i]] = args[i+1];
+ break;
+ case "src":
+ case "movie":
+ args[i+1] = AC_AddExtension(args[i+1], ext);
+ ret.embedAttrs["src"] = args[i+1];
+ ret.params[srcParamName] = args[i+1];
+ break;
+ case "onafterupdate":
+ case "onbeforeupdate":
+ case "onblur":
+ case "oncellchange":
+ case "onclick":
+ case "ondblClick":
+ case "ondrag":
+ case "ondragend":
+ case "ondragenter":
+ case "ondragleave":
+ case "ondragover":
+ case "ondrop":
+ case "onfinish":
+ case "onfocus":
+ case "onhelp":
+ case "onmousedown":
+ case "onmouseup":
+ case "onmouseover":
+ case "onmousemove":
+ case "onmouseout":
+ case "onkeypress":
+ case "onkeydown":
+ case "onkeyup":
+ case "onload":
+ case "onlosecapture":
+ case "onpropertychange":
+ case "onreadystatechange":
+ case "onrowsdelete":
+ case "onrowenter":
+ case "onrowexit":
+ case "onrowsinserted":
+ case "onstart":
+ case "onscroll":
+ case "onbeforeeditfocus":
+ case "onactivate":
+ case "onbeforedeactivate":
+ case "ondeactivate":
+ case "type":
+ case "codebase":
+ ret.objAttrs[args[i]] = args[i+1];
+ break;
+ case "id":
+ case "width":
+ case "height":
+ case "align":
+ case "vspace":
+ case "hspace":
+ case "class":
+ case "title":
+ case "accesskey":
+ case "name":
+ case "tabindex":
+ ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
+ break;
+ default:
+ ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
+ }
+ }
+ ret.objAttrs["classid"] = classid;
+ if (mimeType) ret.embedAttrs["type"] = mimeType;
+ return ret;
+}
+
+
Index: lams_flash/src/central/flex/GroupManager/html-template/index.template.html
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/html-template/index.template.html (revision 0)
+++ lams_flash/src/central/flex/GroupManager/html-template/index.template.html (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+${title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_flash/src/central/flex/GroupManager/html-template/playerProductInstall.swf
===================================================================
diff -u
Binary files differ
Index: lams_flash/src/central/flex/GroupManager/src/ChangePanelTitlePopUp.mxml
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/src/ChangePanelTitlePopUp.mxml (revision 0)
+++ lams_flash/src/central/flex/GroupManager/src/ChangePanelTitlePopUp.mxml (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_flash/src/central/flex/GroupManager/src/GroupManager.mxml
===================================================================
diff -u
--- lams_flash/src/central/flex/GroupManager/src/GroupManager.mxml (revision 0)
+++ lams_flash/src/central/flex/GroupManager/src/GroupManager.mxml (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -0,0 +1,632 @@
+
+
+
+
+
+
+
+ getGroups
+
+
+
+
+
+
+
+ getClassMembersNotGrouped
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ addGroup
+
+
+
+
+
+
+
+
+ removeGroup
+
+
+
+
+
+
+
+
+ changeGroupName
+
+
+
+
+
+
+ = 0) {
+ // get panel information
+ var lastGroupLearners:ArrayCollection = panelLearnerDataProviders[groupId];
+ var lastGroupPanel:Panel = panels[groupId];
+
+ // get learners to move back to initial grid
+ var selectedNamesString:String = "";
+
+ // format the learner ids as needed serverside
+ for(var i:int = 0; i < lastGroupLearners.length; i++){
+ selectedNamesString += lastGroupLearners[i].id;
+
+ if(i < lastGroupLearners.length - 1)
+ {
+ selectedNamesString += ",";
+ }
+ }
+
+ // add learners back to server
+ removeMembersService.request.groupID = lastGroupPanel.id;
+ removeMembersService.request.members = selectedNamesString;
+ removeMembersService.send();
+
+ // add learners back to main datagrid
+ for(var i:int = 0; i < lastGroupLearners.length; i++) {
+ intialLearners.addItem(lastGroupLearners[i]);
+ }
+
+ // remove group from tile
+ learnerGroups_tile.removeChild(lastGroupPanel);
+
+ // remove panel and its dataprovider from their respective collections
+ panelLearnerDataProviders.removeItemAt(groupId);
+ panels.removeItemAt(groupId);
+
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // click handler for changing a panel's title
+ private function changePanelTitleHandler(e:Event):void {
+ if(panels.contains(e.currentTarget) && e.target is UITextField && e.target.text == e.currentTarget.title){
+ createChangePanelTitleWindow(Panel(e.currentTarget));
+ }
+ }
+
+ // method for creating new panel title change popups
+ private function createChangePanelTitleWindow(clickedPanel:Panel):void{
+ var popup:ChangePanelTitlePopUp = ChangePanelTitlePopUp(PopUpManager.createPopUp(this, ChangePanelTitlePopUp, true));
+ popup.init(application.width / 2 - popup.width / 2, application.height / 2 - popup.height / 2, languageXML.language.entry.(@key=="label.grouping.popup.change.group.name").name, clickedPanel, languageXML);
+ }
+
+ // call the change panel name service
+ public function changePanelTitle(panel:Panel, title:String):void {
+ changeGroupNameService.request.groupID = panel.id;
+ changeGroupNameService.request.name = title;
+ changeGroupNameService.send();
+ }
+
+ // find a panel index from its groupID
+ private function findPanelIndex(groupID:int):int{
+ for(var i:int = 0; i < panels.length; i++) {
+ if(Panel(panels[i]).id == String(groupID)){
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
+ // convert a string to a boolean
+ private function stringToBool(string:String):Boolean{
+ switch(string){
+ case "1":
+ case "true":
+ case "yes":
+ return true;
+ case "0":
+ case "false":
+ case "no":
+ return false;
+ default:
+ return Boolean(string);
+ }
+ }
+
+ // click handler for adding a panel
+ private function addPanelHandler(e:Event):void {
+ addGroupService.request.name = "Group " + String(totalGroupsAdded + 1);
+ addGroupService.send();
+ }
+
+ // click handler for removing a panel
+ private function removePanelHandler(event:Event):void {
+ if(panels.length != 0) {
+ lastRemoveEvent = event;
+ Alert.show(languageXML.language.entry.(@key=="label.grouping.popup.delete.group.message").name, languageXML.language.entry.(@key=="label.grouping.popup.delete.group").name, 3, this, alertClickHandler);
+ }
+ }
+
+ // click handler to confirm removing a panel
+ private function alertClickHandler(event:CloseEvent):void {
+ if (event.detail==Alert.YES){
+ removePanelHandlerComplete(lastRemoveEvent);
+ }
+ }
+
+ // handler to complete removing a panel
+ private function removePanelHandlerComplete(e:Event):void {
+ if(e.target.id == "panelRemove_btn" && panels.contains(e.target.parent.parent)){
+ removeGroupService.request.groupID = e.target.parent.parent.id;
+ removeGroupService.send();
+ }
+ else if(e.target == globalRemovePanel_btn){
+ removeGroupService.request.groupID = Panel(panels.getItemAt(panels.length-1)).id;
+ removeGroupService.send();
+ }
+ }
+
+ // click handler for the finish button
+ private function closeWindowHandler(e:MouseEvent):void{
+ ExternalInterface.call("closeWindow");
+ }
+
+ // drag drop handler
+ private function dragDropHandler(e:DragEvent):void {
+ // if the drag and drop source and destination are not the same
+ if(e.dragInitiator != e.currentTarget){
+ // get selected items in datagrid
+ var selectedNames:Array = DataGrid(e.dragInitiator).selectedItems;
+ var selectedNamesString:String = "";
+
+ // format the learner ids as needed serverside
+ for(var i:int = 0; i < selectedNames.length; i++){
+ selectedNamesString += selectedNames[i].id;
+
+ if(i < selectedNames.length - 1)
+ {
+ selectedNamesString += ",";
+ }
+ }
+
+ // if the source is not the initial learners grid, remove members
+ if(DataGrid(e.dragInitiator).id != "mainDataGrid_dg") {
+ removeMembersService.request.groupID = Panel(e.dragInitiator.parent).id;
+ removeMembersService.request.members = selectedNamesString;
+ removeMembersService.send();
+ }
+
+ // if the destination is not the initial learners grid, add members
+ if(DataGrid(e.currentTarget).id != "mainDataGrid_dg") {
+ addMembersService.request.groupID = Panel(e.currentTarget.parent).id;
+ addMembersService.request.members = selectedNamesString;
+ addMembersService.send();
+ }
+ }
+ }
+
+ // -- httpservice handlers --
+ private function getGroupsSuccessHandler(e:ResultEvent):void {
+ var xmlResult:XMLListCollection = new XMLListCollection(XMLList(e.result).groups.group);
+
+ for(var i:int = 0; i < xmlResult.length; i++){
+ addGroupPanel(xmlResult.getItemAt(i).id.toString(), xmlResult.getItemAt(i).name.toString());
+ }
+
+ for(var i:int = 0; i < xmlResult.length; i++){
+ getGroupMembersService.request.groupID = xmlResult.getItemAt(i).id.toString();
+ getGroupMembersService.send();
+ }
+ }
+
+ private function getGroupsFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ private function getMembersNotGroupedSuccessHandler(e:ResultEvent):void {
+ var xmlResult:XMLListCollection = new XMLListCollection(XMLList(e.result).users.user);
+ var groupID:int = XMLList(e.result).groupID.toString();
+
+ for(var i:int = 0; i < xmlResult.length; i++){
+ intialLearners.addItem({displayName: xmlResult.getItemAt(i).displayName.toString(), id: xmlResult.getItemAt(i).id.toString()});
+ }
+ }
+
+ private function getMembersNotGroupedFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ private function getGroupMembersSuccessHandler(e:ResultEvent):void {
+ var xmlResult:XMLListCollection = new XMLListCollection(XMLList(e.result).users.user);
+ var groupID:int = XMLList(e.result).groupID.toString();
+ var indexToUse:int = findPanelIndex(groupID);
+
+ for(var i:int = 0; i < xmlResult.length; i++){
+ panelLearnerDataProviders[indexToUse].addItem({displayName: xmlResult.getItemAt(i).displayName.toString(), id: xmlResult.getItemAt(i).id.toString()});
+ }
+ }
+
+ private function getGroupMembersFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ private function addMembersSuccessHandler(e:ResultEvent):void {
+ // nothing to do here
+ }
+
+ private function addMembersFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ private function removeMembersSuccessHandler(e:ResultEvent):void {
+ // nothing to do here
+ }
+
+ private function removeMembersFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ private function addGroupSuccessHandler(e:ResultEvent):void {
+ addGroupPanel(XMLList(e.result).group.id.toString()), XMLList(e.result).group.name.toString();
+ }
+
+ private function addGroupFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ private function removeGroupSuccessHandler(e:ResultEvent):void {
+ var groupID:int = XMLList(e.result).group.id.toString();
+ var indexToUse:int = findPanelIndex(groupID);
+
+ removeGroupPanel(indexToUse);
+ }
+
+ private function removeGroupFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ private function changeGroupNameSuccessHandler(e:ResultEvent):void {
+ var groupID:int = XMLList(e.result).group.id.toString();
+ var groupName:String = XMLList(e.result).group.newName.toString();
+ var indexToUse:int = findPanelIndex(groupID);
+
+ Panel(panels.getItemAt(indexToUse)).title = groupName;
+ }
+
+ private function changeGroupNameFaultHandler(e:Event):void {
+ Alert.show(languageXML.language.entry.(@key=="error.title").name);
+ }
+
+ // -- getters and setters --
+
+ public function getLanguageXML():XML{
+ return languageXML;
+ }
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ../bin-debug/loading_small.swf
+
+
+
+
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml
===================================================================
diff -u -r2adb095d59ae592387e0a701f5bf9728281684d0 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml (.../monitoringApplicationContext.xml) (revision 2adb095d59ae592387e0a701f5bf9728281684d0)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml (.../monitoringApplicationContext.xml) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -33,6 +33,7 @@
>
+
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java
===================================================================
diff -u -rd52c700f83126a2632c10012bf2c8f1bceed3516 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision d52c700f83126a2632c10012bf2c8f1bceed3516)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -804,4 +804,9 @@
* Start multiple lessons in one call.
*/
public boolean startLessons(Integer creatorUserId, String lessonPacket) throws Exception;
+
+ /**
+ * Set a groups name
+ */
+ public void setGroupName(Long groupID, String name);
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java
===================================================================
diff -u -r778247c607dc8d767ddbc3dff25d0a3505d00661 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 778247c607dc8d767ddbc3dff25d0a3505d00661)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -60,6 +60,7 @@
import org.lamsfoundation.lams.learningdesign.SequenceActivity;
import org.lamsfoundation.lams.learningdesign.ToolActivity;
import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO;
+import org.lamsfoundation.lams.learningdesign.dao.IGroupDAO;
import org.lamsfoundation.lams.learningdesign.dao.IGroupingDAO;
import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO;
import org.lamsfoundation.lams.learningdesign.dao.ITransitionDAO;
@@ -153,6 +154,8 @@
private ILearningDesignDAO learningDesignDAO;
private IGroupingDAO groupingDAO;
+
+ private IGroupDAO groupDAO;
private ILearnerProgressDAO learnerProgressDAO;
@@ -2740,5 +2743,13 @@
throw new Exception(e);
}
}
-
+
+ /**
+ * Set a group's name
+ */
+ public void setGroupName(Long groupID, String name) {
+ Group group = groupDAO.getGroupById(groupID);
+ group.setGroupName(name);
+ groupDAO.saveGroup(group);
+ }
}
\ No newline at end of file
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java
===================================================================
diff -u -reb02d23e4734503baf51538aefd7e345b0c45ec4 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java (.../BranchingAction.java) (revision eb02d23e4734503baf51538aefd7e345b0c45ec4)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java (.../BranchingAction.java) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -25,6 +25,7 @@
package org.lamsfoundation.lams.monitoring.web;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -49,6 +50,7 @@
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.action.LamsDispatchAction;
import org.lamsfoundation.lams.web.util.AttributeNames;
@@ -70,11 +72,15 @@
//---------------------------------------------------------------------
- private static final String VIEW_BRANCHES_SCREEN = "viewBranches";
+ protected static final String VIEW_BRANCHES_SCREEN = "viewBranches";
+ protected static final String CHOSEN_SELECTION_SCREEN = "chosenSelection";
public static final String PARAM_BRANCHING_DTO = "branching";
public static final String PARAM_SHOW_GROUP_NAME = "showGroupName";
/** If localFiles = true will be written to a local file for export portfolio */
- public static final String PARAM_LOCAL_FILES= "localFiles";
+ public static final String PARAM_LOCAL_FILES= "localFiles";
+ public static final String PARAM_MAY_DELETE = "mayDelete";
+ public static final String PARAM_MODULE_LANGUAGE_XML = "languageXML";
+ protected static final String PARAM_VIEW_MODE = "viewMode";
/**
* Export Portfolio Page
@@ -119,6 +125,9 @@
request.setAttribute(AttributeNames.PARAM_LESSON_ID, lessonId);
request.setAttribute(AttributeNames.PARAM_TITLE, activity.getTitle());
request.setAttribute(PARAM_LOCAL_FILES, useLocalFiles);
+ request.setAttribute(PARAM_MODULE_LANGUAGE_XML, getLanguageXML());
+ request.setAttribute(PARAM_MAY_DELETE, Boolean.FALSE);
+ request.setAttribute(PARAM_VIEW_MODE, Boolean.TRUE);
// only show the group names if this is a group based branching activity - the names
// are meaningless for chosen and tool based branching
@@ -128,7 +137,7 @@
if ( log.isDebugEnabled() ) {
log.debug("viewBranching: Branching activity "+dto);
}
- return mapping.findForward(VIEW_BRANCHES_SCREEN);
+ return mapping.findForward(CHOSEN_SELECTION_SCREEN);
}
// Can't do this in BranchingDTO (although that's where it should be) as we have
@@ -170,6 +179,29 @@
dto.setBranches(branches);
return dto;
}
+
+ /**
+ * @return String of xml with all needed language elements
+ */
+ protected String getLanguageXML(){
+ IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
+ MessageService messageService = monitoringService.getMessageService();
+ ArrayList languageCollection = new ArrayList();
+ languageCollection.add(new String("button.finished"));
+ languageCollection.add(new String("label.branching.non.allocated.users.heading"));
+ languageCollection.add(new String("label.grouping.status"));
+ languageCollection.add(new String("label.grouping.learners"));
+ languageCollection.add(new String("error.title"));
+
+ String languageOutput = "";
+
+ for(int i = 0; i < languageCollection.size(); i++){
+ languageOutput += "" + messageService.getMessage(languageCollection.get(i)) + "";
+ }
+
+ languageOutput += "";
+
+ return languageOutput;
+ }
-
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ChosenBranchingAJAXAction.java
===================================================================
diff -u -r08be5501aa8570c5fa4c6e50aa615334c171ee58 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ChosenBranchingAJAXAction.java (.../ChosenBranchingAJAXAction.java) (revision 08be5501aa8570c5fa4c6e50aa615334c171ee58)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ChosenBranchingAJAXAction.java (.../ChosenBranchingAJAXAction.java) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -25,6 +25,7 @@
package org.lamsfoundation.lams.monitoring.web;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -45,6 +46,7 @@
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.util.LastNameAlphabeticComparator;
+import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.util.AttributeNames;
@@ -70,9 +72,7 @@
//---------------------------------------------------------------------
- private static final String CHOSEN_SELECTION_SCREEN = "chosenSelection";
public static final String PARAM_BRANCH_ID = "branchID";
- public static final String PARAM_MAY_DELETE = "mayDelete";
public static final String PARAM_MEMBERS = "members";
/**
@@ -86,6 +86,7 @@
Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
+
IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
BranchingActivity activity = (BranchingActivity) monitoringService.getActivityById(activityID, BranchingActivity.class);
@@ -97,6 +98,8 @@
request.setAttribute(AttributeNames.PARAM_ACTIVITY_ID, activityID);
request.setAttribute(AttributeNames.PARAM_LESSON_ID, lessonId);
request.setAttribute(AttributeNames.PARAM_TITLE, activity.getTitle());
+ request.setAttribute(PARAM_MODULE_LANGUAGE_XML, getLanguageXML());
+ request.setAttribute(PARAM_VIEW_MODE, Boolean.FALSE);
// can we still move users?
boolean usersStartedBranching = monitoringService.isActivityAttempted(activity);
@@ -133,30 +136,8 @@
// build the output string to return to the chosen branching page.
// there should only ever be one group for each branch in chosen branching
- String branchesOutput = "";
+ String branchesOutput = buildBranchStringXML(sortedBranches, monitoringService);
- boolean first = true;
- for ( Activity childActivity : sortedBranches ) {
-
- SequenceActivity branch = (SequenceActivity) monitoringService.getActivityById(childActivity.getActivityId(), SequenceActivity.class);
-
- Long branchId = branch.getActivityId();
- String name = branch.getTitle();
- int numberOfMembers = 0;
-
- Group group = branch.getSoleGroupForBranch();
- if ( group != null )
- numberOfMembers = group.getUsers().size();
-
- if ( ! first ) {
- branchesOutput=branchesOutput+";";
- } else {
- first = false;
- }
-
- branchesOutput=branchesOutput+branchId+","+name+","+numberOfMembers;
- }
-
if ( log.isDebugEnabled() ) {
log.debug("getBranches activity id "+activityID+" returning "+branchesOutput);
}
@@ -181,7 +162,7 @@
Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
SortedSet users = monitoringService.getClassMembersNotGrouped(lessonID, activityID, false);
- String groupOutput = buildUserString(users);
+ String groupOutput = buildUserStringXML(-1, users);
writeAJAXResponse(response, groupOutput);
return null;
@@ -208,7 +189,7 @@
if ( group != null ) {
SortedSet sortedUsers = new TreeSet(new LastNameAlphabeticComparator());
sortedUsers.addAll(group.getUsers());
- userOutput = buildUserString(sortedUsers);
+ userOutput = buildUserStringXML(branchID, sortedUsers);
}
if ( log.isDebugEnabled() ) {
@@ -241,7 +222,98 @@
}
return userOutput;
}
+
+ /**
+ * Output format: xml
+ * @param branchId
+ * @param sortedUsers
+ * @return String of users
+ */
+ private String buildUserStringXML(long branchId, SortedSet sortedUsers) {
+ String userOutput = "";
+ userOutput += "" + branchId + "";
+ userOutput += "";
+ for ( User user : sortedUsers ) {
+ Integer userID = user.getUserId();
+ String lastName = user.getLastName();
+ String firstName = user.getFirstName();
+ userOutput+="";
+ userOutput+="" + userID + "";
+ userOutput+="" + firstName + "";
+ userOutput+="" + lastName + "";
+ userOutput+="" + firstName + " " + lastName + "";
+ userOutput+="";
+ }
+ userOutput += "";
+ return userOutput;
+ }
+
+ /**
+ * Output format:
+ * @param TreeSet sortedBranches
+ * @param IMonitoringService monitoringService
+ * @return String of branches in some strange format
+ */
+ private String buildBranchString(TreeSet sortedBranches, IMonitoringService monitoringService){
+ String branchesOutput = "";
+
+ boolean first = true;
+ for ( Activity childActivity : sortedBranches ) {
+
+ SequenceActivity branch = (SequenceActivity) monitoringService.getActivityById(childActivity.getActivityId(), SequenceActivity.class);
+
+ Long branchId = branch.getActivityId();
+ String name = branch.getTitle();
+ int numberOfMembers = 0;
+
+ Group group = branch.getSoleGroupForBranch();
+ if ( group != null )
+ numberOfMembers = group.getUsers().size();
+
+ if ( ! first ) {
+ branchesOutput=branchesOutput+";";
+ } else {
+ first = false;
+ }
+
+ branchesOutput=branchesOutput+branchId+","+name+","+numberOfMembers;
+ }
+
+ return branchesOutput;
+ }
+
+ /**
+ * Output format: xml
+ * @param TreeSet sortedBranches
+ * @param IMonitoringService monitoringService
+ * @return String of branches in xml format
+ */
+ private String buildBranchStringXML(TreeSet sortedBranches, IMonitoringService monitoringService){
+ String branchOutput = "";
+ for (Activity childActivity : sortedBranches) {
+
+ SequenceActivity branch = (SequenceActivity) monitoringService.getActivityById(childActivity.getActivityId(), SequenceActivity.class);
+
+ Long branchId = branch.getActivityId();
+ String name = branch.getTitle();
+ int numberOfMembers = 0;
+
+ Group group = branch.getSoleGroupForBranch();
+ if ( group != null )
+ numberOfMembers = group.getUsers().size();
+
+ branchOutput+="";
+ branchOutput+="" + branchId + "";
+ branchOutput+="" + name + "";
+ branchOutput+="" + numberOfMembers + "";
+ branchOutput+="";
+ }
+ branchOutput += "";
+
+ return branchOutput;
+ }
+
/**
* Add learners to a group. Designed to respond to an AJAX call.
*
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java
===================================================================
diff -u -r4817e3da1eb7dc61568fc813da2eb0cf383aec46 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision 4817e3da1eb7dc61568fc813da2eb0cf383aec46)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -26,6 +26,8 @@
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.SortedSet;
@@ -53,6 +55,7 @@
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.util.LastNameAlphabeticComparator;
+import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.action.LamsDispatchAction;
import org.lamsfoundation.lams.web.session.SessionManager;
@@ -91,6 +94,8 @@
public static final String PARAM_MEMBERS = "members";
public static final String PARAM_MAY_DELETE = "mayDelete";
public static final String PARAM_USED_FOR_BRANCHING = "usedForBranching";
+ public static final String PARAM_MODULE_LANGUAGE_XML = "languageXML";
+ public static final String PARAM_VIEW_MODE = "viewMode";
private Integer getUserId(HttpServletRequest request) {
HttpSession ss = SessionManager.getSession();
@@ -128,11 +133,12 @@
log.error(error);
throw new MonitoringServiceException(error);
}
-
+
request.setAttribute(AttributeNames.PARAM_ACTIVITY_ID, activityID);
request.setAttribute(AttributeNames.PARAM_LESSON_ID, lessonId);
request.setAttribute(PARAM_ACTIVITY_TITLE, activity.getTitle());
request.setAttribute(PARAM_ACTIVITY_DESCRIPTION, activity.getDescription());
+ request.setAttribute(PARAM_MODULE_LANGUAGE_XML, getLanguageXML());
if ( grouping.isChosenGrouping() ) {
// can I remove groups/users - can't if tool sessions have been created
@@ -153,15 +159,15 @@
request.setAttribute(PARAM_MAY_DELETE, mayDelete);
request.setAttribute(PARAM_USED_FOR_BRANCHING, usedForBranching);
request.setAttribute(PARAM_MAX_NUM_GROUPS, grouping.getMaxNumberOfGroups());
+ request.setAttribute(PARAM_VIEW_MODE, Boolean.FALSE);
return mapping.findForward(CHOSEN_GROUPING_SCREEN);
} else {
// go to a view only screen for random grouping
- SortedSet groups = new TreeSet(new GroupComparator());
- groups.addAll(grouping.getGroups());
- request.setAttribute(PARAM_GROUPS,groups);
+ request.setAttribute(PARAM_MAY_DELETE, Boolean.FALSE);
+ request.setAttribute(PARAM_VIEW_MODE, Boolean.TRUE);
return mapping.findForward(VIEW_GROUPS_SCREEN);
}
@@ -185,21 +191,8 @@
Grouping grouping = getGrouping(activity);
Set sortedGroups = new TreeSet(new GroupComparator());
sortedGroups.addAll(grouping.getGroups());
-
- // build the output string to return to the chosen grouping page.
- String groupOutput = "";
- boolean first = true;
- for ( Group group: sortedGroups ) {
- Long groupId = group.getGroupId();
- String name = group.getGroupName();
- Integer numberOfMembers = group.getUsers().size();
- if ( ! first ) {
- groupOutput=groupOutput+";";
- } else {
- first = false;
- }
- groupOutput=groupOutput+groupId+","+name+","+numberOfMembers;
- }
+
+ String groupOutput = buildGroupsStringXML(sortedGroups);
writeAJAXResponse(response, groupOutput);
return null;
}
@@ -220,7 +213,7 @@
Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
SortedSet users = monitoringService.getClassMembersNotGrouped(lessonID, activityID, true);
- String groupOutput = buildUserString(users);
+ String groupOutput = buildUserStringXML(-1 ,users);
writeAJAXResponse(response, groupOutput);
return null;
@@ -261,7 +254,7 @@
Set users = group.getUsers();
SortedSet sortedUsers = new TreeSet(new LastNameAlphabeticComparator());
sortedUsers.addAll(users);
- String userOutput = buildUserString(sortedUsers);
+ String userOutput = buildUserStringXML(groupID, sortedUsers);
writeAJAXResponse(response, userOutput);
return null;
}
@@ -289,6 +282,144 @@
return userOutput;
}
+ /**
+ * @param sortedUsers
+ * @return String of users
+ */
+ private String buildUserStringXML(long groupId, SortedSet sortedUsers) {
+ String userOutput = "";
+ userOutput += "" + groupId + "";
+ userOutput += "";
+ for ( User user : sortedUsers ) {
+ Integer userID = user.getUserId();
+ String lastName = user.getLastName();
+ String firstName = user.getFirstName();
+
+ userOutput+="";
+ userOutput+="" + userID + "";
+ userOutput+="" + firstName + "";
+ userOutput+="" + lastName + "";
+ userOutput+="" + firstName + " " + lastName + "";
+ userOutput+="";
+ }
+ userOutput += "";
+ return userOutput;
+ }
+
+ /**
+ * @param sortedGroups
+ * @return String of groups
+ */
+ private String buildGroupsString(Set sortedGroups) {
+ String groupOutput = "";
+
+ boolean first = true;
+ for ( Group group: sortedGroups ) {
+ Long groupId = group.getGroupId();
+ String name = group.getGroupName();
+ Integer numberOfMembers = group.getUsers().size();
+ if ( ! first ) {
+ groupOutput=groupOutput+";";
+ } else {
+ first = false;
+ }
+ groupOutput=groupOutput+groupId+","+name+","+numberOfMembers;
+ }
+
+ return groupOutput;
+ }
+
+ /**
+ * @param sortedGroups
+ * @return String of groups
+ */
+ private String buildGroupsStringXML(Set sortedGroups) {
+ String groupOutput = "";
+ for ( Group group: sortedGroups ) {
+ Long groupId = group.getGroupId();
+ String name = group.getGroupName();
+ Integer numberOfMembers = group.getUsers().size();
+
+ groupOutput+="";
+ groupOutput+="" + groupId + "";
+ groupOutput+="" + name + "";
+ groupOutput+="" + numberOfMembers + "";
+ groupOutput+="";
+ }
+ groupOutput += "";
+
+ return groupOutput;
+ }
+
+ /**
+ * @param group
+ * @return String of xml with group added
+ */
+ private String buildAddGroupStringXML(Group group) {
+ String groupOutput = "";
+ groupOutput += "" + group.getGroupId() + "";
+ groupOutput += "" + group.getGroupName() + "";
+ groupOutput += "";
+ return groupOutput;
+ }
+
+ /**
+ * @param group
+ * @return String of xml with group added
+ */
+ private String buildRemoveGroupStringXML(Long groupID) {
+ String groupOutput = "";
+ groupOutput += "" + groupID + "";
+ groupOutput += "";
+ return groupOutput;
+ }
+
+ /**
+ * @param group
+ * @return String of xml with group added
+ */
+ private String buildChangeGroupNameStringXML(Long groupID, String name) {
+ String groupOutput = "";
+ groupOutput += "" + groupID + "";
+ groupOutput += "" + name + "";
+ groupOutput += "";
+ return groupOutput;
+ }
+
+ /**
+ * @return String of xml with all needed language elements
+ */
+ private String getLanguageXML(){
+ IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
+ MessageService messageService = monitoringService.getMessageService();
+ ArrayList languageCollection = new ArrayList();
+ languageCollection.add(new String("button.finished"));
+ languageCollection.add(new String("label.grouping.non.grouped.users.heading"));
+ languageCollection.add(new String("label.grouping.status"));
+ languageCollection.add(new String("label.grouping.functions"));
+ languageCollection.add(new String("label.grouping.popup.change.group.name"));
+ languageCollection.add(new String("label.grouping.popup.change.group.name.field"));
+ languageCollection.add(new String("label.grouping.learners"));
+ languageCollection.add(new String("label.grouping.popup.delete.group"));
+ languageCollection.add(new String("label.grouping.popup.delete.group.message"));
+ languageCollection.add(new String("button.ok"));
+ languageCollection.add(new String("button.cancel"));
+ languageCollection.add(new String("button.yes"));
+ languageCollection.add(new String("button.no"));
+ languageCollection.add(new String("error.title"));
+ languageCollection.add(new String("label.grouping.max.num.in.group.heading"));
+
+ String languageOutput = "";
+
+ for(int i = 0; i < languageCollection.size(); i++){
+ languageOutput += "" + messageService.getMessage(languageCollection.get(i)) + "";
+ }
+
+ languageOutput += "";
+
+ return languageOutput;
+ }
+
/**
* Add a new group. Designed to respond to an AJAX call.
* If the teacher wants to add more groups than the number of groups set in authoring, and this grouping
@@ -305,8 +436,9 @@
Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
String name = WebUtil.readStrParam(request, PARAM_NAME);
IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
- monitoringService.addGroup(activityID, name, true);
- writeAJAXResponse(response,"");
+ Group group = monitoringService.addGroup(activityID, name, true);
+ String groupResponse = buildAddGroupStringXML(group);
+ writeAJAXResponse(response,groupResponse);
return null;
}
@@ -326,7 +458,8 @@
IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
monitoringService.removeGroup(activityID, groupID);
- writeAJAXOKResponse(response);
+ String responseString = buildRemoveGroupStringXML(groupID);
+ writeAJAXResponse(response, responseString);
return null;
}
@@ -345,14 +478,36 @@
Long groupID = WebUtil.readLongParam(request, AttributeNames.PARAM_GROUP_ID);
String members = WebUtil.readStrParam(request, PARAM_MEMBERS, true);
if ( members != null ) {
- String[] membersSplit = members.split(",");
+ String[] membersSplit = members.split(",");
IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
monitoringService.addUsersToGroup(activityID, groupID, membersSplit);
}
writeAJAXOKResponse(response);
return null;
}
+
+ /**
+ * Add learners to a group. Designed to respond to an AJAX call.
+ *
+ * Input parameters: activityID, name: group name, members: comma separated list of users
+ *
+ * Output format: no data returned - just the header
+ */
+ public ActionForward changeGroupName(ActionMapping mapping,
+ ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) throws IOException, ServletException, LessonServiceException {
+ Long groupID = WebUtil.readLongParam(request, AttributeNames.PARAM_GROUP_ID);
+ String name = WebUtil.readStrParam(request, PARAM_NAME, true);
+ if ( name != null ) {
+ IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
+ monitoringService.setGroupName(groupID, name);
+ }
+ String reponseSting = buildChangeGroupNameStringXML(groupID, name);
+ writeAJAXResponse(response, reponseSting);
+ return null;
+ }
+
/**
* Remove a list of users from a group. Designed to respond to an AJAX call.
*
@@ -375,5 +530,4 @@
writeAJAXOKResponse(response);
return null;
}
-
}
Index: lams_monitoring/web/branching/BranchManager.swf
===================================================================
diff -u
Binary files differ
Index: lams_monitoring/web/branching/chosenSelection.jsp
===================================================================
diff -u -r5822fa33a4644a07c816fa58c4a0e083e908c4a9 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/web/branching/chosenSelection.jsp (.../chosenSelection.jsp) (revision 5822fa33a4644a07c816fa58c4a0e083e908c4a9)
+++ lams_monitoring/web/branching/chosenSelection.jsp (.../chosenSelection.jsp) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -34,290 +34,21 @@
-
+
+
-
-
-
+
@@ -334,43 +65,84 @@
-
-
- <%@ include file="../template/finishbutton.jsp" %>
-
-
+
+
+
Index: lams_monitoring/web/branching/viewBranches.jsp
===================================================================
diff -u -r3a4c502dd96ac40fd96827f36bc450158b145113 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/web/branching/viewBranches.jsp (.../viewBranches.jsp) (revision 3a4c502dd96ac40fd96827f36bc450158b145113)
+++ lams_monitoring/web/branching/viewBranches.jsp (.../viewBranches.jsp) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -26,7 +26,18 @@
<%@ taglib uri="tags-core" prefix="c" %>
<%@ taglib uri="tags-lams" prefix="lams" %>
+
+
+
@@ -36,34 +47,82 @@
-
-
- |
- |
-
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
- |
-
-
-
+
Index: lams_monitoring/web/grouping/GroupManager.swf
===================================================================
diff -u
Binary files differ
Index: lams_monitoring/web/grouping/chosenGrouping.jsp
===================================================================
diff -u -r5822fa33a4644a07c816fa58c4a0e083e908c4a9 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/web/grouping/chosenGrouping.jsp (.../chosenGrouping.jsp) (revision 5822fa33a4644a07c816fa58c4a0e083e908c4a9)
+++ lams_monitoring/web/grouping/chosenGrouping.jsp (.../chosenGrouping.jsp) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -34,422 +34,21 @@
-
+
+
-
-
-
+
@@ -476,49 +75,82 @@
-
-
- <%@ include file="../template/finishbutton.jsp" %>
-
-
+
+
+
Index: lams_monitoring/web/grouping/viewGroups.jsp
===================================================================
diff -u -rc209be8131f22f6fe37bd8d6c14b56425a78b766 -redba2c28d900fba6e7bb761fb0a828aad979629e
--- lams_monitoring/web/grouping/viewGroups.jsp (.../viewGroups.jsp) (revision c209be8131f22f6fe37bd8d6c14b56425a78b766)
+++ lams_monitoring/web/grouping/viewGroups.jsp (.../viewGroups.jsp) (revision edba2c28d900fba6e7bb761fb0a828aad979629e)
@@ -26,7 +26,18 @@
<%@ taglib uri="tags-core" prefix="c" %>
<%@ taglib uri="tags-lams" prefix="lams" %>
+
+
+
@@ -36,31 +47,80 @@
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
-
+