Organize actions / Factorise actions code in class members
authorCharles du Jeu <charles.dujeu@gmail.com>
Mon, 8 Dec 2008 19:13:05 +0000 (19:13 +0000)
committerCharles du Jeu <charles.dujeu@gmail.com>
Mon, 8 Dec 2008 19:13:05 +0000 (19:13 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1965 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/TestList.js

index 29505adec5d6b323f1ba1b70204d5c33f2e6eb6c..231aad6f90b34cebd30fcd11ae068dc682ccc0b3 100644 (file)
@@ -37,20 +37,45 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                icon            : "resource/slc/view-refresh.png",\r
                                shortcut        : "Control+l",\r
                                enabled         : true,\r
-                               menu            : "File",\r
-                               toolbar         : "test",\r
+                               menu            : "Collection",\r
+                               toolbar         : "collection",\r
                                callback        : function(e){\r
                                        this.loadList();\r
                                }, \r
                                command         : null\r
                        },\r
+                       "copyfullcollection" : {\r
+                               label           : "Copy to...", \r
+                               icon            : "resource/slc/edit-copy.png",\r
+                               shortcut        : null,\r
+                               enabled         : false,\r
+                               menu            : "Collection",\r
+                               toolbar         : "collection",\r
+                               callback        : function(e){\r
+                                       // Call service to copy\r
+                               },\r
+                               submenu         : {},\r
+                               submenuCallback : function(commandId){\r
+                                       this.copySelectionToCollection(commandId, "current_collection");\r
+                               },\r
+                               init : function(){\r
+                                       // Call at command creation\r
+                                       org.argeo.ria.remote.RequestManager.getInstance().addListener("reload", function(event){\r
+                                               if(event.getDataType() == "collection" || event.getDataType() == "test_cases"){\r
+                                                       var testList = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("list").getContent();\r
+                                                       testList.collectionListToMenu(this);\r
+                                               }\r
+                                       }, this);\r
+                               },\r
+                               command         : null\r
+                       },\r
                        "opentest" : {\r
                                label           : "Open", \r
-                               icon            : "resource/slc/document-open.png",\r
+                               icon            : "resource/slc/media-playback-start.png",\r
                                shortcut        : "Control+o",\r
                                enabled         : false,\r
                                menu            : "Selection",\r
-                               toolbar         : "test",\r
+                               toolbar         : "selection",\r
                                callback        : function(e){\r
                                        var viewsManager = org.argeo.ria.components.ViewsManager.getInstance();\r
                                        var classObj = org.argeo.slc.web.Applet;\r
@@ -75,7 +100,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                shortcut        : null,\r
                                enabled         : false,\r
                                menu            : "Selection",\r
-                               toolbar         : "test",\r
+                               toolbar         : "selection",\r
                                callback        : function(e){ },\r
                                command         : null,\r
                                submenu         : {},\r
@@ -125,7 +150,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                shortcut        : "Control+d",\r
                                enabled         : false,\r
                                menu            : "Selection",\r
-                               toolbar         : "test",\r
+                               toolbar         : "selection",\r
                                callback        : function(e){\r
                                        // Call service to delete\r
                                },\r
@@ -143,30 +168,21 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                shortcut        : "Control+c",\r
                                enabled         : false,\r
                                menu            : "Selection",\r
-                               toolbar         : "test",\r
+                               toolbar         : "selection",\r
                                callback        : function(e){\r
                                        // Call service to copy\r
                                },\r
                                submenu         : {},\r
+                               submenuCallback : function(commandId){\r
+                                       this.copySelectionToCollection(commandId, "current_selection");                                 \r
+                               },\r
                                init : function(){\r
                                        // Call at command creation\r
                                        org.argeo.ria.remote.RequestManager.getInstance().addListener("reload", function(event){\r
-                                               if(event.getDataType() != "collection") return;\r
-                                               this.setEnabled(false);\r
-                                               this.clearMenus();      \r
-                                               var collectionList = event.getContent();\r
-                                               if(!collectionList) return;\r
-                                               var submenus = [];\r
-                                               for(var key in collectionList){\r
-                                                       submenus.push({\r
-                                                               "label":collectionList[key], \r
-                                                               "icon":null, \r
-                                                               "commandId":key\r
-                                                       });\r
+                                               if(event.getDataType() == "collection" || event.getDataType() == "test_cases"){\r
+                                                       var testList = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("list").getContent();\r
+                                                       testList.collectionListToMenu(this, true);\r
                                                }\r
-                                               this.setMenu(submenus);\r
-                                               var viewSelection = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneSelection("list");\r
-                                               if(viewSelection.getCount()) this.setEnabled(true);\r
                                        }, this);\r
                                },\r
                                selectionChange : function(viewId, xmlNodes){\r
@@ -231,7 +247,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                 var collectionList = event.getContent();\r
                 select.removeAll();\r
                 for(key in collectionList){\r
-                       var item = new qx.ui.form.ListItem(collectionList[key], null, key);\r
+                       var item = new qx.ui.form.ListItem(collectionList[key], "resource/slc/folder.png", key);\r
                        select.add(item);\r
                        if(key == this.getCollectionId()){\r
                                select.setSelected(item);\r
@@ -263,7 +279,6 @@ qx.Class.define("org.argeo.slc.web.TestList",
                request.addListener("completed", function(response){\r
                        xml = response.getContent();\r
                        qx.log.Logger.info("Successfully loaded XML");\r
-                       //var resManager = org.argeo.ria.event.ResourcesManager.getInstance().fireReloadEvent("test_cases", xml);\r
                        var nodes = qx.xml.Element.selectNodes(xml, "//data");\r
                        for(var i=0; i<nodes.length;i++){\r
                                var rowData = nodes[i];\r
@@ -272,7 +287,51 @@ qx.Class.define("org.argeo.slc.web.TestList",
                }, request);\r
                request.send();         \r
        },\r
-               \r
+       \r
+       collectionListToMenu : function(command, checkSelection){\r
+               command.setEnabled(false);\r
+               command.clearMenus();\r
+               var collectionList = this.getCollectionList();\r
+               if(!collectionList) return;\r
+               var submenus = [];\r
+               for(var key in collectionList){\r
+                       if(this.getCollectionId() && key == this.getCollectionId()) continue;\r
+                       submenus.push({\r
+                               "label":collectionList[key], \r
+                               "icon":"resource/slc/folder.png", \r
+                               "commandId":key\r
+                       });\r
+               }               \r
+               submenus.push({"label":"New...", "icon":"resource/slc/folder-new.png", "commandId":"slc.client.create"});\r
+               command.setMenu(submenus);\r
+               if(checkSelection){\r
+                       var viewSelection = this.getView().getViewSelection();\r
+                       if(viewSelection.getCount()) command.setEnabled(true);\r
+               }else{\r
+                       command.setEnabled(true);\r
+               }\r
+       },\r
+       \r
+       copySelectionToCollection:function(collectionId, selectionType){\r
+               if(collectionId == "slc.client.create"){\r
+                       var modal = new org.argeo.ria.components.Modal("Create collection", "resource/slc/folder-new.png");\r
+                       modal.makePromptForm("Enter the new collection name", function(value){\r
+                               if(value == ""){\r
+                                       alert("Please enter a name for the new collection!");\r
+                                       return false;\r
+                               }\r
+                               else {\r
+                                       // Create the collection now, then recall the callback with the new name.                                                               \r
+                                       this.copySelectionToCollection(value, selectionType);\r
+                                       return true;\r
+                               }\r
+                       }, this);\r
+                       modal.attachAndShow();\r
+               }else{                  \r
+                       this.debug("Copying "+selectionType+" to collection " + collectionId);\r
+               }\r
+       },\r
+       \r
        addScroll : function(){\r
                return false;\r
        }       \r