Various implementations
authorCharles du Jeu <charles.dujeu@gmail.com>
Mon, 8 Dec 2008 22:34:25 +0000 (22:34 +0000)
committerCharles du Jeu <charles.dujeu@gmail.com>
Mon, 8 Dec 2008 22:34:25 +0000 (22:34 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1971 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

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

index 93b097dc678a2efab11d683176e6aad0ee4c6632..6671b5fe6a244d11e721f35543bd8794198b2759 100644 (file)
@@ -36,6 +36,7 @@ qx.Class.define("org.argeo.slc.web.Perspective",
          view.load();\r
          //var command = org.argeo.ria.event.CommandsManager.getInstance().executeCommand("loadtestlist");\r
          view.loadCollections(); // We know it is a TestList!\r
+         view.loadList();\r
        }\r
        \r
   }\r
index 231aad6f90b34cebd30fcd11ae068dc682ccc0b3..e0506afa949d211d3776623da6b5821f8b3d213b 100644 (file)
@@ -152,7 +152,23 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                menu            : "Selection",\r
                                toolbar         : "selection",\r
                                callback        : function(e){\r
-                                       // Call service to delete\r
+                                       var viewsManager = org.argeo.ria.components.ViewsManager.getInstance();\r
+                                       var xmlNodes = viewsManager.getViewPaneSelection("list").getNodes();\r
+                                       var uuid = qx.xml.Element.getSingleNodeText(xmlNodes[0], 'param[@name="uuid"]');\r
+                                       var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
+                                       var request = serviceManager.getRequest(\r
+                                               "/org.argeo.slc.webapp/removeResultFromCollection.service",\r
+                                               "GET",\r
+                                               "application/xml"\r
+                                       );\r
+                                       request.setParameter("collectionId", this.getCollectionId());\r
+                                       request.setParameter("resultUuid", uuid);\r
+                                       request.addListener("completed", function(response){\r
+                                               this.loadCollections();\r
+                                               this.loadList();\r
+                                               this.info("Test was successfully deleted");\r
+                                       }, this);\r
+                                       request.send();\r
                                },\r
                                selectionChange : function(viewId, xmlNodes){\r
                                        if(viewId != "list") return;\r
@@ -236,14 +252,11 @@ qx.Class.define("org.argeo.slc.web.TestList",
          this.getView().setViewTitle("");\r
          this.add(this.table, {flex:1});\r
 \r
-         select.addListener("changeValue", function(dataEvent){\r
-               this.debug(dataEvent.getData());\r
-               this.setCollectionId(dataEvent.getData());\r
-               this.loadList();\r
-         }, this);\r
+         select.addListener("changeValue", this.collectionSelectorListener, this);\r
 \r
          org.argeo.ria.remote.RequestManager.getInstance().addListener("reload", function(event){\r
                 if(event.getDataType()!="collection") return;\r
+                select.removeListener("changeValue", this.collectionSelectorListener, this);\r
                 var collectionList = event.getContent();\r
                 select.removeAll();\r
                 for(key in collectionList){\r
@@ -253,13 +266,33 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                select.setSelected(item);\r
                        }\r
                 }\r
+                select.addListener("changeValue", this.collectionSelectorListener, this);\r
          }, this);\r
                  \r
        },\r
        \r
        loadCollections : function(){\r
-               this.setCollectionList({"Charles":"Collection 'Charles'","My Collection":"Collection 'My Collection'"});\r
-               org.argeo.ria.remote.RequestManager.getInstance().fireReloadEvent("collection", this.getCollectionList());\r
+               var url = "/org.argeo.slc.webapp/listCollectionRefs.service";\r
+               var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
+               var request = serviceManager.getRequest(\r
+                       url,\r
+                       "GET",\r
+                       "application/xml"\r
+               );\r
+               var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};\r
+               request.addListener("completed", function(response){\r
+                       var xml = response.getContent();\r
+                       var collections = {};\r
+                       var nodes = org.argeo.ria.util.Element.selectNodes(xml, "//slc:ref", NSMap);\r
+                       for(var i=0;i<nodes.length;i++){\r
+                               var collId = qx.xml.Element.getSingleNodeText(nodes[i], ".");\r
+                               collections[collId] = collId;\r
+                       }\r
+                       this.setCollectionList(collections);\r
+                       org.argeo.ria.remote.RequestManager.getInstance().fireReloadEvent("collection", this.getCollectionList());\r
+               }, this);\r
+               request.setAsynchronous(false);\r
+               request.send();\r
        },\r
        \r
        loadList : function(){\r
@@ -277,8 +310,8 @@ qx.Class.define("org.argeo.slc.web.TestList",
                );       \r
                request.setParameter("collectionId", this.getCollectionId());\r
                request.addListener("completed", function(response){\r
-                       xml = response.getContent();\r
-                       qx.log.Logger.info("Successfully loaded XML");\r
+                       var xml = response.getContent();\r
+                       this.info("Successfully loaded 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
@@ -327,9 +360,34 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                }\r
                        }, this);\r
                        modal.attachAndShow();\r
-               }else{                  \r
-                       this.debug("Copying "+selectionType+" to collection " + collectionId);\r
+                       return;\r
                }\r
+\r
+               var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
+               var request = serviceManager.getRequest(\r
+                       "/org.argeo.slc.webapp/addResultToCollection.service", \r
+                       "GET", \r
+                       "application/xml"\r
+               );\r
+\r
+               if(selectionType == "current_collection"){\r
+                       this.error("Not implemented yet!");                     \r
+               }else if(selectionType == "current_selection"){\r
+                       // get selection ID\r
+                       request.setParameter("collectionId", collectionId);\r
+                       var xmlNodes = this.getView().getViewSelection().getNodes();\r
+                       var uuid = qx.xml.Element.getSingleNodeText(xmlNodes[0], 'param[@name="uuid"]');\r
+                       request.setParameter("resultUuid", uuid);\r
+               }\r
+               request.addListener("completed", function(response){\r
+                       this.loadCollections();\r
+               }, this);\r
+               request.send();         \r
+       },\r
+       \r
+       collectionSelectorListener : function(event){\r
+               this.setCollectionId(event.getData());\r
+               this.loadList();                \r
        },\r
        \r
        addScroll : function(){\r