Redispatch libraries in the right folders
authorCharles du Jeu <charles.dujeu@gmail.com>
Tue, 9 Dec 2008 22:34:14 +0000 (22:34 +0000)
committerCharles du Jeu <charles.dujeu@gmail.com>
Tue, 9 Dec 2008 22:34:14 +0000 (22:34 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1995 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

12 files changed:
org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/Perspective.js [new file with mode: 0644]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/TestList.js [new file with mode: 0644]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/XmlRenderer.js [new file with mode: 0644]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/Applet.js [new file with mode: 0644]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcApi.js [new file with mode: 0644]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/StatusCellRenderer.js [new file with mode: 0644]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/Applet.js [deleted file]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/SlcApi.js [deleted file]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/StatusCellRenderer.js [deleted file]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/Perspective.js [deleted file]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/TestList.js [deleted file]
org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/XmlRenderer.js [deleted file]

diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/Perspective.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/Perspective.js
new file mode 100644 (file)
index 0000000..6671b5f
--- /dev/null
@@ -0,0 +1,44 @@
+/**\r
+ * @author Charles\r
+ */\r
+qx.Class.define("org.argeo.slc.web.Perspective",\r
+{\r
+  extend : qx.core.Object,\r
+  implement : [org.argeo.ria.components.IPerspective], \r
+  \r
+  construct : function(){\r
+               this.base(arguments);\r
+  },\r
+  \r
+  members : {\r
+               \r
+       initViewPanes : function(viewsManager){\r
+               \r
+      var splitPane = new qx.ui.splitpane.Pane("horizontal");\r
+         var topLeft = new org.argeo.ria.components.ViewPane("list", "Collection", {\r
+               orientation : "horizontal",\r
+               min : 36\r
+         });\r
+         topLeft.set({width:300});\r
+         viewsManager.registerViewPane(topLeft);\r
+           \r
+         splitPane.add(topLeft, 0);\r
+         var rightPane = new org.argeo.ria.components.ViewPane("applet", "Test Detail");         \r
+         viewsManager.registerViewPane(rightPane);\r
+         splitPane.add(rightPane, 1);\r
+      \r
+      viewsManager.getViewPanesContainer().add(splitPane, {flex:1});\r
+               \r
+       },\r
+       \r
+       initViews : function(viewsManager){\r
+         var view = viewsManager.initIViewClass(org.argeo.slc.web.TestList, "list");\r
+         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
+\r
+});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/TestList.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/TestList.js
new file mode 100644 (file)
index 0000000..8aaf5e1
--- /dev/null
@@ -0,0 +1,389 @@
+/**\r
+ * @author Charles\r
+ */\r
+qx.Class.define("org.argeo.slc.web.TestList",\r
+{\r
+  extend : qx.ui.container.Composite,\r
+  implement : [org.argeo.ria.components.IView], \r
+\r
+  construct : function(){\r
+       this.base(arguments, new qx.ui.layout.VBox());          \r
+       var model = new qx.ui.table.model.Simple();\r
+       model.setColumns(["Test Case", "Date"]);\r
+       this.table = new qx.ui.table.Table(model, {\r
+               tableColumnModel: function(obj){\r
+                       return new qx.ui.table.columnmodel.Resize(obj)\r
+               }\r
+       });\r
+  },\r
+\r
+  properties : \r
+  {\r
+       view : {\r
+               init : null\r
+       },\r
+       collectionList : {\r
+               init : {},\r
+               check : "Map"\r
+       },\r
+       collectionId:{\r
+               init : 'My Collection',\r
+               check : "String"\r
+       },\r
+       commands : {\r
+               init : {\r
+                       "loadtestlist" : {\r
+                               label           : "Load Collection", \r
+                               icon            : "resource/slc/view-refresh.png",\r
+                               shortcut        : "Control+l",\r
+                               enabled         : true,\r
+                               menu            : "Collection",\r
+                               toolbar         : "collection",\r
+                               callback        : function(e){\r
+                                       this.loadList();\r
+                               }, \r
+                               command         : null\r
+                       },\r
+                       "polllistloading" : {\r
+                               label           : "Auto load", \r
+                               icon            : "resource/slc/document-open-recent.png",\r
+                               shortcut        : "Control+l",\r
+                               enabled         : true,\r
+                               toggle          : true,\r
+                               menu            : "Collection",\r
+                               toolbar         : "collection",\r
+                               callback        : function(event){\r
+                                       this.pollListLoading(event.getTarget().getUserData("slc.command.toggleState"));\r
+                               }, \r
+                               command         : null\r
+                       },\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
+                       */\r
+                       "opentest" : {\r
+                               label           : "Open", \r
+                               icon            : "resource/slc/media-playback-start.png",\r
+                               shortcut        : "Control+o",\r
+                               enabled         : false,\r
+                               menu            : "Selection",\r
+                               toolbar         : "selection",\r
+                               callback        : function(e){\r
+                                       var viewsManager = org.argeo.ria.components.ViewsManager.getInstance();\r
+                                       var classObj = org.argeo.slc.ria.Applet;\r
+                                       var iView = viewsManager.initIViewClass(classObj, "applet");\r
+                                       var xmlNodes = viewsManager.getViewPaneSelection("list").getNodes();\r
+                                       iView.load(xmlNodes[0]);\r
+                               },\r
+                               selectionChange : function(viewId, xmlNodes){\r
+                                       if(viewId != "list") return;\r
+                                       this.setEnabled(false);\r
+                                       if(xmlNodes == null || !xmlNodes.length) return;\r
+                                       this.setEnabled(true);\r
+                               },\r
+                               command         : null\r
+                       },\r
+                       "download" : {\r
+                               label           : "Download as...", \r
+                               icon            : "resource/slc/go-down.png",\r
+                               shortcut        : null,\r
+                               enabled         : false,\r
+                               menu            : "Selection",\r
+                               toolbar         : "selection",\r
+                               callback        : function(e){ },\r
+                               command         : null,\r
+                               submenu         : [\r
+                                               {'label':"Xsl", 'icon':'resource/slc/mime-xsl.png', 'commandId':'xsl'},\r
+                                               {'label':"Xml", 'icon':'resource/slc/mime-xml.png', 'commandId':'xml'},\r
+                                               {'label':"Excel", 'icon':'resource/slc/mime-xls.png', 'commandId':'xls'},\r
+                                               {'label':"Pdf", 'icon':'resource/slc/mime-pdf.png', 'commandId':'pdf'}\r
+                                       ],\r
+                               submenuCallback : function(commandId){\r
+                                       var uuid = this.extractTestUuid();\r
+                                       var urls = {\r
+                                               xsl : "resultView.xslt",\r
+                                               xml : "resultViewXml.xslt",\r
+                                               xls : "resultView.xls",\r
+                                               pdf : "resultView.pdf"\r
+                                       };\r
+                                       var url = "../"+urls[commandId]+"?uuid="+uuid;\r
+                                       if(commandId == "xls" || commandId == "pdf"){\r
+                                               document.location.href = url;\r
+                                       }else{\r
+                                               var win = window.open(url);\r
+                                       }\r
+                               },\r
+                               selectionChange : function(viewId, xmlNodes){\r
+                                       if(viewId!="list")return;\r
+                                       //this.clearMenus();\r
+                                       this.setEnabled(false);\r
+                                       if(xmlNodes == null || !xmlNodes.length) return;\r
+                                       this.setEnabled(true);\r
+                               }\r
+                       },\r
+                       "copytocollection" : {\r
+                               label           : "Copy to...", \r
+                               icon            : "resource/slc/edit-copy.png",\r
+                               shortcut        : "Control+c",\r
+                               enabled         : false,\r
+                               menu            : "Selection",\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" || event.getDataType() == "test_cases"){\r
+                                                       var testList = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("list").getContent();\r
+                                                       testList.collectionListToMenu(this, true);\r
+                                               }\r
+                                       }, this);\r
+                               },\r
+                               selectionChange : function(viewId, xmlNodes){\r
+                                       if(viewId != "list") return;\r
+                                       this.setEnabled(false);\r
+                                       if(xmlNodes == null || !xmlNodes.length) return;\r
+                                       this.setEnabled(true);                                                  \r
+                               },\r
+                               command         : null\r
+                       },\r
+                       "deletetest" : {\r
+                               label           : "Delete", \r
+                               icon            : "resource/slc/edit-delete.png",\r
+                               shortcut        : "Control+d",\r
+                               enabled         : false,\r
+                               menu            : "Selection",\r
+                               toolbar         : "selection",\r
+                               callback        : function(e){\r
+                                       \r
+                                       var request = org.argeo.slc.ria.SlcApi.getRemoveResultService(this.getCollectionId(), this.extractTestUuid());\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
+                                       this.setEnabled(false);\r
+                                       if(xmlNodes == null || !xmlNodes.length) return;\r
+                                       this.setEnabled(true);                                                  \r
+                               },\r
+                               command         : null\r
+                       }\r
+               }\r
+       }\r
+  },\r
+  \r
+  members : {\r
+       init : function(viewPane){\r
+         this.setView(viewPane);\r
+       },\r
+       load : function(data){\r
+         this.table.set({              \r
+               statusBarVisible: false,\r
+               showCellFocusIndicator:false,\r
+               columnVisibilityButtonVisible:false,\r
+               contextMenu : org.argeo.ria.event.CommandsManager.getInstance().createMenuFromIds(["opentest", "download", "copytocollection", "deletetest"]),\r
+               decorator : new qx.ui.decoration.Background("#fff")\r
+         });\r
+         var viewPane = this.getView();\r
+         this.table.addListener("dblclick", function(e){\r
+               org.argeo.ria.event.CommandsManager.getInstance().executeCommand("opentest");\r
+         }, this);\r
+         var columnModel = this.table.getTableColumnModel(); \r
+         columnModel.getBehavior().setWidth(0, "60%");\r
+         var renderer = new org.argeo.slc.web.XmlRenderer();\r
+         columnModel.setDataCellRenderer(0, renderer);\r
+         columnModel.setDataCellRenderer(1, renderer);\r
+         \r
+         this.table.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){\r
+               var viewSelection = viewPane.getViewSelection();\r
+               viewSelection.clear();\r
+               var selectionModel = this.table.getSelectionManager().getSelectionModel();\r
+               if(!selectionModel.getSelectedCount()){\r
+                       return;\r
+               }\r
+               var ranges = this.table.getSelectionManager().getSelectionModel().getSelectedRanges();\r
+               var xmlNode = this.table.getTableModel().getRowData(ranges[0].minIndex);\r
+               viewSelection.addNode(xmlNode);\r
+               viewPane.setViewSelection(viewSelection);\r
+         }, this);             \r
+         \r
+         var select = new qx.ui.form.SelectBox();\r
+         this.getView().addHeaderComponent(select);\r
+         this.getView().setViewTitle("");\r
+         this.add(this.table, {flex:1});\r
+\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
+                       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
+                       }\r
+                }\r
+                this.setCollectionId(select.getSelected().getValue());\r
+                select.addListener("changeValue", this.collectionSelectorListener, this);\r
+         }, this);\r
+                 \r
+       },\r
+       \r
+       loadCollections : function(){\r
+               var request = org.argeo.slc.ria.SlcApi.getListCollectionsService();\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
+               var model = this.table.getTableModel();\r
+               model.removeRows(0, model.getRowCount());\r
+               var commandManager = org.argeo.ria.event.CommandsManager.getInstance();\r
+               var request = org.argeo.slc.ria.SlcApi.getListResultsService(this.getCollectionId(), null, [commandManager.getCommandById("loadtestlist"), this.getView()]);\r
+               var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};\r
+               request.addListener("completed", function(response){\r
+                       var xml = response.getContent();\r
+                       this.debug("Successfully loaded XML");\r
+                       var nodes = org.argeo.ria.util.Element.selectNodes(xml, "//slc:result-attributes", NSMap);\r
+                       //model.addRows(nodes);\r
+                       \r
+                       for(var i=0; i<nodes.length;i++){                               \r
+                               model.addRows([nodes[i]]);\r
+                       }                       \r
+               }, request);\r
+               request.send();         \r
+       },\r
+       \r
+       pollListLoading : function(state){\r
+               if(!this.timer){\r
+                       this.timer = new qx.event.Timer(5000);\r
+                       this.timer.addListener("interval", this.loadList, this);\r
+               }\r
+               if(state){\r
+                       this.loadList();\r
+                       this.timer.start();\r
+               }else{\r
+                       this.timer.stop();\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({'separator':true});\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
+                       return;\r
+               }\r
+\r
+               if(selectionType == "current_collection"){\r
+                       this.error("Not implemented yet!");                     \r
+               }else if(selectionType == "current_selection"){\r
+                       // get selection ID\r
+                       var request = org.argeo.slc.ria.SlcApi.getAddResultService(collectionId,this.extractTestUuid());\r
+                       request.addListener("completed", function(response){\r
+                               this.info("Result successfully copied to collection!");\r
+                               this.loadCollections();\r
+                       }, this);\r
+                       request.send();         \r
+               }\r
+       },\r
+       \r
+       extractTestUuid: function(){\r
+               var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};\r
+               var xmlNodes = this.getView().getViewSelection().getNodes();\r
+               var uuid = qx.dom.Node.getText(org.argeo.ria.util.Element.selectSingleNode(xmlNodes[0], "slc:uuid"));\r
+               return uuid;\r
+       },\r
+       \r
+       collectionSelectorListener : function(event){\r
+               this.setCollectionId(event.getData());\r
+               this.loadList();                \r
+       },\r
+       \r
+       addScroll : function(){\r
+               return false;\r
+       }       \r
+  }\r
+});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/XmlRenderer.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc-web/class/org/argeo/slc/web/XmlRenderer.js
new file mode 100644 (file)
index 0000000..c369bb3
--- /dev/null
@@ -0,0 +1,69 @@
+/**\r
+ * Basic helper for SLC XML results to be displayed in a qx.ui.table.\r
+ * Overrides the html of the standard qx.ui.table.cellrenderer.String\r
+ *  \r
+ * TODO : put in org.argeo.slc.ria package\r
+ * \r
+ */\r
+qx.Class.define("org.argeo.slc.web.XmlRenderer",\r
+{\r
+  extend : qx.ui.table.cellrenderer.String,\r
+\r
+  /*\r
+  *****************************************************************************\r
+     MEMBERS\r
+  *****************************************************************************\r
+  */\r
+\r
+  members :\r
+  {\r
+       /**\r
+        * Overrides the parent method.\r
+        * @param cellInfo {Map} The current cell data \r
+        * @return {String}\r
+        */\r
+    _getContentHtml : function(cellInfo) {\r
+       var xmlNode = cellInfo.rowData;\r
+       if(!xmlNode) return "";\r
+       var xPath;\r
+       var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};\r
+       switch(cellInfo.col){\r
+               case 0 :\r
+                       xPath = "slc:uuid";\r
+                       var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath, NSMap);\r
+                       var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || "Not Found");\r
+                       break;\r
+               case 1 : \r
+                       xPath = "slc:close-date";\r
+                       var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath, NSMap);\r
+                       var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || "NOT CLOSED");\r
+                       if(value == "NOT CLOSED") return value;\r
+                       var splits = value.split(".");\r
+                       value = splits[0].replace("T", " ");                            \r
+                       var dateFormat = new qx.util.format.DateFormat("yyyy-MM-dd HH:mm:ss");\r
+                       try {\r
+                               var date = dateFormat.parse(value);\r
+                               var dateFormat2 = new qx.util.format.DateFormat("MMM d, yy HH:mm:ss");\r
+                               return dateFormat2.format(date);\r
+                       }catch(e){}\r
+                       break;\r
+               default :\r
+                       return "";\r
+                       break;\r
+       }\r
+       \r
+       return value;\r
+    },\r
+    \r
+    // overridden\r
+    /**\r
+     * Overrides parent method\r
+     * @param cellInfo {Map} Current cell data\r
+     * @return {String}\r
+     */\r
+    _getCellClass : function(cellInfo) {\r
+               return this.base(arguments, cellInfo);\r
+    }\r
+    \r
+  }\r
+});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/Applet.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/Applet.js
new file mode 100644 (file)
index 0000000..987e0a8
--- /dev/null
@@ -0,0 +1,224 @@
+/**
+ * @author Charles
+ */
+qx.Class.define("org.argeo.slc.ria.Applet",
+{
+  extend : qx.ui.container.Composite,
+  implement : [org.argeo.ria.components.IView], 
+
+  construct : function(){
+       this.base(arguments);
+       this.setLayout(new qx.ui.layout.VBox());
+       this.passedStatus = "PASSED";
+       this.failedStatus = "FAILED";
+  },
+
+  properties : 
+  {
+       view : {
+               init : null
+       },
+       commands : {
+               init : {
+                       "close" : {
+                               label           : "Close Result", 
+                               icon            : "resource/slc/window-close.png",
+                               shortcut        : "Control+w",
+                               enabled         : true,
+                               menu            : "Test",
+                               toolbar         : "result",
+                               callback        : function(e){
+                                       // Call service to delete
+                                       this.getView().empty();                                         
+                               },
+                               selectionChange : function(viewId, xmlNode){                                    
+                                       if(viewId != "applet") return;
+                               },
+                               command         : null
+                       }                       
+               }
+       }
+  },
+
+  /*
+  *****************************************************************************
+     MEMBERS
+  *****************************************************************************
+  */
+
+  members :
+  {
+       init : function(viewPane){
+               this.setView(viewPane);
+       },
+       
+       load : function(xmlNode){
+               this.data = xmlNode;
+               if(!xmlNode) return;
+               // Load XML or Whatever
+               var service;            
+               var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};
+               var testId = qx.dom.Node.getText(org.argeo.ria.util.Element.selectSingleNode(this.data, "slc:uuid"));           
+               this.getView().setViewTitle("Test "+testId);
+               var request = org.argeo.slc.ria.SlcApi.getLoadResultService(testId);            
+               request.addListener("completed", function(response){
+                       this.createXmlGui(response.getContent());
+                       this.getView().setOnLoad(false);
+               }, this);
+               this.getView().setOnLoad(true);
+               request.send();
+               
+       },
+        
+       addScroll : function(){
+               return false;
+       },
+               
+       createXmlGui : function(responseXml){
+               var NSMap = {
+                       "slc" : "http://argeo.org/projects/slc/schemas"
+               }
+               if(!qx.Class.hasMixin(qx.ui.treevirtual.TreeVirtual, qx.ui.treevirtual.MNode)){
+                       qx.Class.include(qx.ui.treevirtual.TreeVirtual,qx.ui.treevirtual.MNode);
+               }
+               this.tree = new qx.ui.treevirtual.TreeVirtual(["Test", "State", "Message", "Id"]);
+               this.tree.getTableColumnModel().setDataCellRenderer(0, new org.argeo.ria.util.TreeDataCellRenderer());
+               this.tree.getDataRowRenderer().setHighlightFocusRow(false); // Default row renderer
+               this.tree.setRowHeight(18);
+               this.tree.setStatusBarVisible(false);
+               this.tree.setDecorator(new qx.ui.decoration.Background("#fff"));
+               var model = this.tree.getDataModel();
+               var resNodes = org.argeo.ria.util.Element.selectNodes(responseXml, "//slc:result-part", NSMap);
+               var resultParts = {};
+               var addedPaths = {};
+               for(var i=0;i<resNodes.length;i++){
+                       var currentParentId = null;
+                       var node = resNodes[i];
+                       var pathAttr = qx.xml.Element.getSingleNodeText(node, "@path");                         
+                       var pathParts = pathAttr.split("/");
+                       if(pathParts[0] == ""){
+                               pathParts.shift();
+                       }
+                       var crtPath = "";
+                       for(var j=0;j<pathParts.length;j++){
+                               //if(pathParts[j] == "") continue;
+                               crtPath = crtPath.concat("/", pathParts[j]);
+                               if(addedPaths[crtPath]) {
+                                       currentParentId = addedPaths[crtPath];
+                                       continue; // Node already exists, set as parent and go to next!
+                               }
+                               var element = org.argeo.ria.util.Element.selectSingleNode(responseXml, '//slc:element[@path="'+crtPath+'"]', NSMap);
+                               var label;
+                               if(element != null){
+                                       label = org.argeo.ria.util.Element.getSingleNodeText(element, "*/slc:label", NSMap);
+                               }else{
+                                       label = crtPath;
+                               }
+                               var simpleResults = org.argeo.ria.util.Element.selectNodes(node, "slc:part-sub-list/slc:parts/slc:simple-result-part", NSMap);
+
+                               var newId;
+                               //newId = model.addBranch(currentParentId, label, false);
+                               
+                               // Test Leaf Node
+                               if(!simpleResults || !simpleResults.length){
+                                       newId = model.addBranch(currentParentId, label, false);
+                                       addedPaths[crtPath] = newId;
+                                       currentParentId = newId;
+                                       continue;
+                               }
+                               if(simpleResults.length == 1){
+                                       //newId = model.addBranch(currentParentId, label, false);
+                                       var sResNode = simpleResults[0];
+                                       newId = model.addBranch(currentParentId, label);
+                                       model.setColumnData(newId, 3, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:test-run-uuid", NSMap));
+                                       model.setColumnData(newId, 2, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:message", NSMap));
+                                       var status = org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:status", NSMap);
+                                       if(status != "PASSED"){
+                                               status = this.failedStatus ;
+                                               this._setParentBranchAsFailed(newId);
+                                       }else{
+                                               status = this.passedStatus;
+                                       }
+                                       model.setColumnData(newId, 1, status);                                                                                  
+                                       addedPaths[crtPath] = newId;
+                                       currentParentId = newId;
+                                       continue;
+                               }
+                               newId = model.addBranch(currentParentId, label, false);
+                               for(var k=0;k<simpleResults.length;k++){
+                                       var sResNode = simpleResults[k];
+                                       resId = model.addLeaf(currentParentId, label);
+                                       model.setColumnData(resId, 3, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:test-run-uuid", NSMap));
+                                       model.setColumnData(resId, 2, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:message", NSMap));
+                                       var status = org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:status", NSMap);
+                                       if(status != "PASSED"){
+                                               status = this.failedStatus ;
+                                               this._setParentBranchAsFailed(resId);
+                                       }else{
+                                               status = this.passedStatus;
+                                       }
+                                       model.setColumnData(resId, 1, status);                                          
+                               }
+                               
+                               addedPaths[crtPath] = newId;
+                               currentParentId = newId;
+                       }
+               }
+               this._refineLeaves(this.tree, 0);
+               this.add(this.tree, {flex:1});
+               model.setData();
+               var columnModel = this.tree.getTableColumnModel();
+               var resize = columnModel.getBehavior();
+               resize.set(0, {width:250, minWidth:250});
+               resize.set(1, {width:55});
+               resize.set(2, {width:"1*"});
+               resize.set(3, {width:150});
+               columnModel.setDataCellRenderer(1, new org.argeo.slc.ria.StatusCellRenderer());
+               
+           this.tree.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){
+                       var viewSelection = this.getView().getViewSelection();
+                       viewSelection.clear();
+                       var nodes = this.tree.getDataModel().getSelectedNodes();
+                       if(nodes.length){
+                               viewSelection.addNode(nodes[0]);
+                               this.getView().setViewSelection(viewSelection);
+                       }
+               }, this);
+               
+               var contextMenu = org.argeo.ria.event.CommandsManager.getInstance().createMenuFromIds(["close"]);
+               this.tree.setContextMenu(contextMenu);
+               
+       },
+       
+       _setParentBranchAsFailed : function(id){
+               var model = this.tree.getDataModel();
+               while(id != null && id!=0){
+                       var node = this.tree.nodeGet(id);
+                       id = node.parentNodeId;
+                       if(id != null && id!=0){
+                               model.setColumnData(id, 1, this.failedStatus);
+                               this.tree.nodeSetOpened(id, true);
+                       }
+               }               
+       },
+       
+       _refineLeaves : function(tree, nodeId){
+               var node = tree.nodeGet(nodeId);                
+               if(node.children && node.children.length){
+                       for(var i=0;i<node.children.length;i++){
+                               this._refineLeaves(tree, node.children[i]);
+                       }
+               }else{
+                       node.type = qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF;
+               }
+       },
+       
+       createHtmlGui : function(responseText){
+               var htmlElement = new qx.ui.embed.Html(responseText);
+               htmlElement.setOverflowX("auto");
+               htmlElement.setOverflowY("auto");
+               this.add(htmlElement, {flex:1});
+       }
+       
+  }
+});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcApi.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcApi.js
new file mode 100644 (file)
index 0000000..dd36325
--- /dev/null
@@ -0,0 +1,121 @@
+qx.Class.define("org.argeo.slc.ria.SlcApi",\r
+{\r
+  extend : qx.core.Object,\r
+  \r
+  statics : {\r
+       DEFAULT_CONTEXT : "/org.argeo.slc.webapp",\r
+       \r
+       REMOVE_RESULT_FROM_COLL_SERVICE : "removeResultFromCollection.service",\r
+       ADD_RESULT_TO_COLL_SERVICE : "addResultToCollection.service",\r
+       LIST_COLLECTIONS_SERVICE : "listCollectionRefs.service",\r
+       LIST_RESULTS_SERVICE : "listResultAttributes.service",\r
+       GET_RESULT_SERVICE : "getResult.service",\r
+       \r
+       /**\r
+        * Standard Request getter\r
+        * @param serviceName {String} The name of the service to call (without base context)\r
+        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
+        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
+        * @return {qx.io.remote.Request}\r
+        */\r
+       getServiceRequest:function(serviceName, fireReloadEventType, iLoadStatusables){\r
+               var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
+               return serviceManager.getRequest(\r
+                       org.argeo.slc.ria.SlcApi.DEFAULT_CONTEXT+"/"+serviceName,\r
+                       "GET",\r
+                       "application/xml",\r
+                       fireReloadEventType,\r
+                       iLoadStatusables\r
+               );\r
+       },\r
+       \r
+       /**\r
+        * Remove a result from a collection\r
+        * @param collectionId {String} Id of the destination collection\r
+        * @param resultId {String} Id of the test result to remove\r
+        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
+        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
+        * @return {qx.io.remote.Request}\r
+        */\r
+       getRemoveResultService : function(collectionId, resultId, fireReloadEventType, iLoadStatusables){\r
+               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
+                       org.argeo.slc.ria.SlcApi.REMOVE_RESULT_FROM_COLL_SERVICE, \r
+                       fireReloadEventType, \r
+                       iLoadStatusables\r
+               );\r
+               request.setParameter("collectionId", collectionId);\r
+               request.setParameter("resultUuid", resultId);\r
+               return request;\r
+       },\r
+       \r
+       /**\r
+        * Add a result to a given collection\r
+        * @param collectionId {String} Id of the destination collection\r
+        * @param resultId {String} Id of the test result to add\r
+        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
+        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
+        * @return {qx.io.remote.Request}\r
+        */\r
+       getAddResultService : function(collectionId, resultId, fireReloadEventType, iLoadStatusables){\r
+               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
+                       org.argeo.slc.ria.SlcApi.ADD_RESULT_TO_COLL_SERVICE, \r
+                       fireReloadEventType, \r
+                       iLoadStatusables\r
+               );\r
+               request.setParameter("collectionId", collectionId);\r
+               request.setParameter("resultUuid", resultId);\r
+               return request;\r
+       },\r
+       \r
+       /**\r
+        * List current collections\r
+        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
+        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
+        * @return {qx.io.remote.Request}\r
+        */\r
+       getListCollectionsService : function(fireReloadEventType, iLoadStatusables){\r
+               return org.argeo.slc.ria.SlcApi.getServiceRequest(\r
+                       org.argeo.slc.ria.SlcApi.LIST_COLLECTIONS_SERVICE, \r
+                       fireReloadEventType, \r
+                       iLoadStatusables\r
+               );\r
+       },\r
+       \r
+       /**\r
+        * List all results or results of a given collection \r
+        * @param collectionId {String} Id of the collection to load\r
+        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
+        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
+        * @return {qx.io.remote.Request}\r
+        */\r
+       getListResultsService : function(collectionId, fireReloadEventType, iLoadStatusables){\r
+               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
+                       org.argeo.slc.ria.SlcApi.LIST_RESULTS_SERVICE, \r
+                       fireReloadEventType, \r
+                       iLoadStatusables\r
+               );\r
+               if(collectionId){\r
+                       request.setParameter("id", collectionId);\r
+               }\r
+               return request;\r
+       },\r
+       \r
+       /**\r
+        * Load a result test\r
+        * @param resultId {String} Id of the test result to load\r
+        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
+        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
+        * @return {qx.io.remote.Request}\r
+        */\r
+       getLoadResultService : function(resultId, fireReloadEventType, iLoadStatusables){\r
+               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
+                       org.argeo.slc.ria.SlcApi.GET_RESULT_SERVICE, \r
+                       fireReloadEventType, \r
+                       iLoadStatusables\r
+               );\r
+               request.setParameter("uuid", resultId);\r
+               return request;\r
+       }\r
+       \r
+  }\r
+});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/StatusCellRenderer.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/StatusCellRenderer.js
new file mode 100644 (file)
index 0000000..f578d0a
--- /dev/null
@@ -0,0 +1,63 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2007 OpenHex SPRL, http://www.openhex.org
+
+   License:
+     LGPL: http://www.gnu.org/licenses/lgpl.html
+     EPL: http://www.eclipse.org/org/documents/epl-v10.php
+     See the LICENSE file in the project's top-level directory for details.
+
+   Authors:
+     * Dirk Wellmann (dw(at)piponline.net)
+
+************************************************************************ */
+
+/**
+ * This Cellrender is for test status use. It create green or red background
+ * cells depending on the status value (PASSED or FAILED).
+ */
+qx.Class.define("org.argeo.slc.ria.StatusCellRenderer",
+{
+  extend : qx.ui.table.cellrenderer.Html,
+
+  construct : function(){
+       this.base(arguments);
+             var style =
+             [
+               ".slc-status-passed{background-color:#8fc98f;color:#008300;border-bottom:1px solid #cccccc;text-align:center;filter:alpha(opacity=80);opacity: 0.8;-moz-opacity:0.8;}",
+               ".slc-status-failed{background-color:#cb8f8f;color:#830000;border-bottom:1px solid #cccccc;text-align:center;filter:alpha(opacity=80);opacity: 0.8;-moz-opacity:0.8;}"
+             ];        
+             // Include stylesheet
+             qx.bom.Stylesheet.createElement(style.join(""));
+  },
+  
+  /*
+  *****************************************************************************
+     MEMBERS
+  *****************************************************************************
+  */
+
+  members :
+  {
+    // overridden
+    _getContentHtml : function(cellInfo) {
+      return (cellInfo.value || "");
+    },
+
+    // overridden
+    _getCellClass : function(cellInfo) {
+       if(cellInfo.value == "PASSED"){
+             return "qooxdoo-table-cell slc-status-passed";
+       }else if(cellInfo.value == "FAILED"){
+         return "qooxdoo-table-cell slc-status-failed";
+       }else{
+         return "qooxdoo-table-cell";
+       }
+    }
+  }
+});
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/Applet.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/Applet.js
deleted file mode 100644 (file)
index 987e0a8..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- * @author Charles
- */
-qx.Class.define("org.argeo.slc.ria.Applet",
-{
-  extend : qx.ui.container.Composite,
-  implement : [org.argeo.ria.components.IView], 
-
-  construct : function(){
-       this.base(arguments);
-       this.setLayout(new qx.ui.layout.VBox());
-       this.passedStatus = "PASSED";
-       this.failedStatus = "FAILED";
-  },
-
-  properties : 
-  {
-       view : {
-               init : null
-       },
-       commands : {
-               init : {
-                       "close" : {
-                               label           : "Close Result", 
-                               icon            : "resource/slc/window-close.png",
-                               shortcut        : "Control+w",
-                               enabled         : true,
-                               menu            : "Test",
-                               toolbar         : "result",
-                               callback        : function(e){
-                                       // Call service to delete
-                                       this.getView().empty();                                         
-                               },
-                               selectionChange : function(viewId, xmlNode){                                    
-                                       if(viewId != "applet") return;
-                               },
-                               command         : null
-                       }                       
-               }
-       }
-  },
-
-  /*
-  *****************************************************************************
-     MEMBERS
-  *****************************************************************************
-  */
-
-  members :
-  {
-       init : function(viewPane){
-               this.setView(viewPane);
-       },
-       
-       load : function(xmlNode){
-               this.data = xmlNode;
-               if(!xmlNode) return;
-               // Load XML or Whatever
-               var service;            
-               var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};
-               var testId = qx.dom.Node.getText(org.argeo.ria.util.Element.selectSingleNode(this.data, "slc:uuid"));           
-               this.getView().setViewTitle("Test "+testId);
-               var request = org.argeo.slc.ria.SlcApi.getLoadResultService(testId);            
-               request.addListener("completed", function(response){
-                       this.createXmlGui(response.getContent());
-                       this.getView().setOnLoad(false);
-               }, this);
-               this.getView().setOnLoad(true);
-               request.send();
-               
-       },
-        
-       addScroll : function(){
-               return false;
-       },
-               
-       createXmlGui : function(responseXml){
-               var NSMap = {
-                       "slc" : "http://argeo.org/projects/slc/schemas"
-               }
-               if(!qx.Class.hasMixin(qx.ui.treevirtual.TreeVirtual, qx.ui.treevirtual.MNode)){
-                       qx.Class.include(qx.ui.treevirtual.TreeVirtual,qx.ui.treevirtual.MNode);
-               }
-               this.tree = new qx.ui.treevirtual.TreeVirtual(["Test", "State", "Message", "Id"]);
-               this.tree.getTableColumnModel().setDataCellRenderer(0, new org.argeo.ria.util.TreeDataCellRenderer());
-               this.tree.getDataRowRenderer().setHighlightFocusRow(false); // Default row renderer
-               this.tree.setRowHeight(18);
-               this.tree.setStatusBarVisible(false);
-               this.tree.setDecorator(new qx.ui.decoration.Background("#fff"));
-               var model = this.tree.getDataModel();
-               var resNodes = org.argeo.ria.util.Element.selectNodes(responseXml, "//slc:result-part", NSMap);
-               var resultParts = {};
-               var addedPaths = {};
-               for(var i=0;i<resNodes.length;i++){
-                       var currentParentId = null;
-                       var node = resNodes[i];
-                       var pathAttr = qx.xml.Element.getSingleNodeText(node, "@path");                         
-                       var pathParts = pathAttr.split("/");
-                       if(pathParts[0] == ""){
-                               pathParts.shift();
-                       }
-                       var crtPath = "";
-                       for(var j=0;j<pathParts.length;j++){
-                               //if(pathParts[j] == "") continue;
-                               crtPath = crtPath.concat("/", pathParts[j]);
-                               if(addedPaths[crtPath]) {
-                                       currentParentId = addedPaths[crtPath];
-                                       continue; // Node already exists, set as parent and go to next!
-                               }
-                               var element = org.argeo.ria.util.Element.selectSingleNode(responseXml, '//slc:element[@path="'+crtPath+'"]', NSMap);
-                               var label;
-                               if(element != null){
-                                       label = org.argeo.ria.util.Element.getSingleNodeText(element, "*/slc:label", NSMap);
-                               }else{
-                                       label = crtPath;
-                               }
-                               var simpleResults = org.argeo.ria.util.Element.selectNodes(node, "slc:part-sub-list/slc:parts/slc:simple-result-part", NSMap);
-
-                               var newId;
-                               //newId = model.addBranch(currentParentId, label, false);
-                               
-                               // Test Leaf Node
-                               if(!simpleResults || !simpleResults.length){
-                                       newId = model.addBranch(currentParentId, label, false);
-                                       addedPaths[crtPath] = newId;
-                                       currentParentId = newId;
-                                       continue;
-                               }
-                               if(simpleResults.length == 1){
-                                       //newId = model.addBranch(currentParentId, label, false);
-                                       var sResNode = simpleResults[0];
-                                       newId = model.addBranch(currentParentId, label);
-                                       model.setColumnData(newId, 3, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:test-run-uuid", NSMap));
-                                       model.setColumnData(newId, 2, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:message", NSMap));
-                                       var status = org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:status", NSMap);
-                                       if(status != "PASSED"){
-                                               status = this.failedStatus ;
-                                               this._setParentBranchAsFailed(newId);
-                                       }else{
-                                               status = this.passedStatus;
-                                       }
-                                       model.setColumnData(newId, 1, status);                                                                                  
-                                       addedPaths[crtPath] = newId;
-                                       currentParentId = newId;
-                                       continue;
-                               }
-                               newId = model.addBranch(currentParentId, label, false);
-                               for(var k=0;k<simpleResults.length;k++){
-                                       var sResNode = simpleResults[k];
-                                       resId = model.addLeaf(currentParentId, label);
-                                       model.setColumnData(resId, 3, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:test-run-uuid", NSMap));
-                                       model.setColumnData(resId, 2, org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:message", NSMap));
-                                       var status = org.argeo.ria.util.Element.getSingleNodeText(sResNode, "slc:status", NSMap);
-                                       if(status != "PASSED"){
-                                               status = this.failedStatus ;
-                                               this._setParentBranchAsFailed(resId);
-                                       }else{
-                                               status = this.passedStatus;
-                                       }
-                                       model.setColumnData(resId, 1, status);                                          
-                               }
-                               
-                               addedPaths[crtPath] = newId;
-                               currentParentId = newId;
-                       }
-               }
-               this._refineLeaves(this.tree, 0);
-               this.add(this.tree, {flex:1});
-               model.setData();
-               var columnModel = this.tree.getTableColumnModel();
-               var resize = columnModel.getBehavior();
-               resize.set(0, {width:250, minWidth:250});
-               resize.set(1, {width:55});
-               resize.set(2, {width:"1*"});
-               resize.set(3, {width:150});
-               columnModel.setDataCellRenderer(1, new org.argeo.slc.ria.StatusCellRenderer());
-               
-           this.tree.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){
-                       var viewSelection = this.getView().getViewSelection();
-                       viewSelection.clear();
-                       var nodes = this.tree.getDataModel().getSelectedNodes();
-                       if(nodes.length){
-                               viewSelection.addNode(nodes[0]);
-                               this.getView().setViewSelection(viewSelection);
-                       }
-               }, this);
-               
-               var contextMenu = org.argeo.ria.event.CommandsManager.getInstance().createMenuFromIds(["close"]);
-               this.tree.setContextMenu(contextMenu);
-               
-       },
-       
-       _setParentBranchAsFailed : function(id){
-               var model = this.tree.getDataModel();
-               while(id != null && id!=0){
-                       var node = this.tree.nodeGet(id);
-                       id = node.parentNodeId;
-                       if(id != null && id!=0){
-                               model.setColumnData(id, 1, this.failedStatus);
-                               this.tree.nodeSetOpened(id, true);
-                       }
-               }               
-       },
-       
-       _refineLeaves : function(tree, nodeId){
-               var node = tree.nodeGet(nodeId);                
-               if(node.children && node.children.length){
-                       for(var i=0;i<node.children.length;i++){
-                               this._refineLeaves(tree, node.children[i]);
-                       }
-               }else{
-                       node.type = qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF;
-               }
-       },
-       
-       createHtmlGui : function(responseText){
-               var htmlElement = new qx.ui.embed.Html(responseText);
-               htmlElement.setOverflowX("auto");
-               htmlElement.setOverflowY("auto");
-               this.add(htmlElement, {flex:1});
-       }
-       
-  }
-});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/SlcApi.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/SlcApi.js
deleted file mode 100644 (file)
index dd36325..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-qx.Class.define("org.argeo.slc.ria.SlcApi",\r
-{\r
-  extend : qx.core.Object,\r
-  \r
-  statics : {\r
-       DEFAULT_CONTEXT : "/org.argeo.slc.webapp",\r
-       \r
-       REMOVE_RESULT_FROM_COLL_SERVICE : "removeResultFromCollection.service",\r
-       ADD_RESULT_TO_COLL_SERVICE : "addResultToCollection.service",\r
-       LIST_COLLECTIONS_SERVICE : "listCollectionRefs.service",\r
-       LIST_RESULTS_SERVICE : "listResultAttributes.service",\r
-       GET_RESULT_SERVICE : "getResult.service",\r
-       \r
-       /**\r
-        * Standard Request getter\r
-        * @param serviceName {String} The name of the service to call (without base context)\r
-        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
-        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
-        * @return {qx.io.remote.Request}\r
-        */\r
-       getServiceRequest:function(serviceName, fireReloadEventType, iLoadStatusables){\r
-               var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
-               return serviceManager.getRequest(\r
-                       org.argeo.slc.ria.SlcApi.DEFAULT_CONTEXT+"/"+serviceName,\r
-                       "GET",\r
-                       "application/xml",\r
-                       fireReloadEventType,\r
-                       iLoadStatusables\r
-               );\r
-       },\r
-       \r
-       /**\r
-        * Remove a result from a collection\r
-        * @param collectionId {String} Id of the destination collection\r
-        * @param resultId {String} Id of the test result to remove\r
-        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
-        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
-        * @return {qx.io.remote.Request}\r
-        */\r
-       getRemoveResultService : function(collectionId, resultId, fireReloadEventType, iLoadStatusables){\r
-               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
-                       org.argeo.slc.ria.SlcApi.REMOVE_RESULT_FROM_COLL_SERVICE, \r
-                       fireReloadEventType, \r
-                       iLoadStatusables\r
-               );\r
-               request.setParameter("collectionId", collectionId);\r
-               request.setParameter("resultUuid", resultId);\r
-               return request;\r
-       },\r
-       \r
-       /**\r
-        * Add a result to a given collection\r
-        * @param collectionId {String} Id of the destination collection\r
-        * @param resultId {String} Id of the test result to add\r
-        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
-        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
-        * @return {qx.io.remote.Request}\r
-        */\r
-       getAddResultService : function(collectionId, resultId, fireReloadEventType, iLoadStatusables){\r
-               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
-                       org.argeo.slc.ria.SlcApi.ADD_RESULT_TO_COLL_SERVICE, \r
-                       fireReloadEventType, \r
-                       iLoadStatusables\r
-               );\r
-               request.setParameter("collectionId", collectionId);\r
-               request.setParameter("resultUuid", resultId);\r
-               return request;\r
-       },\r
-       \r
-       /**\r
-        * List current collections\r
-        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
-        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
-        * @return {qx.io.remote.Request}\r
-        */\r
-       getListCollectionsService : function(fireReloadEventType, iLoadStatusables){\r
-               return org.argeo.slc.ria.SlcApi.getServiceRequest(\r
-                       org.argeo.slc.ria.SlcApi.LIST_COLLECTIONS_SERVICE, \r
-                       fireReloadEventType, \r
-                       iLoadStatusables\r
-               );\r
-       },\r
-       \r
-       /**\r
-        * List all results or results of a given collection \r
-        * @param collectionId {String} Id of the collection to load\r
-        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
-        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
-        * @return {qx.io.remote.Request}\r
-        */\r
-       getListResultsService : function(collectionId, fireReloadEventType, iLoadStatusables){\r
-               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
-                       org.argeo.slc.ria.SlcApi.LIST_RESULTS_SERVICE, \r
-                       fireReloadEventType, \r
-                       iLoadStatusables\r
-               );\r
-               if(collectionId){\r
-                       request.setParameter("id", collectionId);\r
-               }\r
-               return request;\r
-       },\r
-       \r
-       /**\r
-        * Load a result test\r
-        * @param resultId {String} Id of the test result to load\r
-        * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
-        * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
-        * @return {qx.io.remote.Request}\r
-        */\r
-       getLoadResultService : function(resultId, fireReloadEventType, iLoadStatusables){\r
-               var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
-                       org.argeo.slc.ria.SlcApi.GET_RESULT_SERVICE, \r
-                       fireReloadEventType, \r
-                       iLoadStatusables\r
-               );\r
-               request.setParameter("uuid", resultId);\r
-               return request;\r
-       }\r
-       \r
-  }\r
-});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/StatusCellRenderer.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/ria/StatusCellRenderer.js
deleted file mode 100644 (file)
index f578d0a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 OpenHex SPRL, http://www.openhex.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Dirk Wellmann (dw(at)piponline.net)
-
-************************************************************************ */
-
-/**
- * This Cellrender is for test status use. It create green or red background
- * cells depending on the status value (PASSED or FAILED).
- */
-qx.Class.define("org.argeo.slc.ria.StatusCellRenderer",
-{
-  extend : qx.ui.table.cellrenderer.Html,
-
-  construct : function(){
-       this.base(arguments);
-             var style =
-             [
-               ".slc-status-passed{background-color:#8fc98f;color:#008300;border-bottom:1px solid #cccccc;text-align:center;filter:alpha(opacity=80);opacity: 0.8;-moz-opacity:0.8;}",
-               ".slc-status-failed{background-color:#cb8f8f;color:#830000;border-bottom:1px solid #cccccc;text-align:center;filter:alpha(opacity=80);opacity: 0.8;-moz-opacity:0.8;}"
-             ];        
-             // Include stylesheet
-             qx.bom.Stylesheet.createElement(style.join(""));
-  },
-  
-  /*
-  *****************************************************************************
-     MEMBERS
-  *****************************************************************************
-  */
-
-  members :
-  {
-    // overridden
-    _getContentHtml : function(cellInfo) {
-      return (cellInfo.value || "");
-    },
-
-    // overridden
-    _getCellClass : function(cellInfo) {
-       if(cellInfo.value == "PASSED"){
-             return "qooxdoo-table-cell slc-status-passed";
-       }else if(cellInfo.value == "FAILED"){
-         return "qooxdoo-table-cell slc-status-failed";
-       }else{
-         return "qooxdoo-table-cell";
-       }
-    }
-  }
-});
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/Perspective.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/Perspective.js
deleted file mode 100644 (file)
index 6671b5f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/**\r
- * @author Charles\r
- */\r
-qx.Class.define("org.argeo.slc.web.Perspective",\r
-{\r
-  extend : qx.core.Object,\r
-  implement : [org.argeo.ria.components.IPerspective], \r
-  \r
-  construct : function(){\r
-               this.base(arguments);\r
-  },\r
-  \r
-  members : {\r
-               \r
-       initViewPanes : function(viewsManager){\r
-               \r
-      var splitPane = new qx.ui.splitpane.Pane("horizontal");\r
-         var topLeft = new org.argeo.ria.components.ViewPane("list", "Collection", {\r
-               orientation : "horizontal",\r
-               min : 36\r
-         });\r
-         topLeft.set({width:300});\r
-         viewsManager.registerViewPane(topLeft);\r
-           \r
-         splitPane.add(topLeft, 0);\r
-         var rightPane = new org.argeo.ria.components.ViewPane("applet", "Test Detail");         \r
-         viewsManager.registerViewPane(rightPane);\r
-         splitPane.add(rightPane, 1);\r
-      \r
-      viewsManager.getViewPanesContainer().add(splitPane, {flex:1});\r
-               \r
-       },\r
-       \r
-       initViews : function(viewsManager){\r
-         var view = viewsManager.initIViewClass(org.argeo.slc.web.TestList, "list");\r
-         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
-\r
-});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/TestList.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/TestList.js
deleted file mode 100644 (file)
index 8aaf5e1..0000000
+++ /dev/null
@@ -1,389 +0,0 @@
-/**\r
- * @author Charles\r
- */\r
-qx.Class.define("org.argeo.slc.web.TestList",\r
-{\r
-  extend : qx.ui.container.Composite,\r
-  implement : [org.argeo.ria.components.IView], \r
-\r
-  construct : function(){\r
-       this.base(arguments, new qx.ui.layout.VBox());          \r
-       var model = new qx.ui.table.model.Simple();\r
-       model.setColumns(["Test Case", "Date"]);\r
-       this.table = new qx.ui.table.Table(model, {\r
-               tableColumnModel: function(obj){\r
-                       return new qx.ui.table.columnmodel.Resize(obj)\r
-               }\r
-       });\r
-  },\r
-\r
-  properties : \r
-  {\r
-       view : {\r
-               init : null\r
-       },\r
-       collectionList : {\r
-               init : {},\r
-               check : "Map"\r
-       },\r
-       collectionId:{\r
-               init : 'My Collection',\r
-               check : "String"\r
-       },\r
-       commands : {\r
-               init : {\r
-                       "loadtestlist" : {\r
-                               label           : "Load Collection", \r
-                               icon            : "resource/slc/view-refresh.png",\r
-                               shortcut        : "Control+l",\r
-                               enabled         : true,\r
-                               menu            : "Collection",\r
-                               toolbar         : "collection",\r
-                               callback        : function(e){\r
-                                       this.loadList();\r
-                               }, \r
-                               command         : null\r
-                       },\r
-                       "polllistloading" : {\r
-                               label           : "Auto load", \r
-                               icon            : "resource/slc/document-open-recent.png",\r
-                               shortcut        : "Control+l",\r
-                               enabled         : true,\r
-                               toggle          : true,\r
-                               menu            : "Collection",\r
-                               toolbar         : "collection",\r
-                               callback        : function(event){\r
-                                       this.pollListLoading(event.getTarget().getUserData("slc.command.toggleState"));\r
-                               }, \r
-                               command         : null\r
-                       },\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
-                       */\r
-                       "opentest" : {\r
-                               label           : "Open", \r
-                               icon            : "resource/slc/media-playback-start.png",\r
-                               shortcut        : "Control+o",\r
-                               enabled         : false,\r
-                               menu            : "Selection",\r
-                               toolbar         : "selection",\r
-                               callback        : function(e){\r
-                                       var viewsManager = org.argeo.ria.components.ViewsManager.getInstance();\r
-                                       var classObj = org.argeo.slc.ria.Applet;\r
-                                       var iView = viewsManager.initIViewClass(classObj, "applet");\r
-                                       var xmlNodes = viewsManager.getViewPaneSelection("list").getNodes();\r
-                                       iView.load(xmlNodes[0]);\r
-                               },\r
-                               selectionChange : function(viewId, xmlNodes){\r
-                                       if(viewId != "list") return;\r
-                                       this.setEnabled(false);\r
-                                       if(xmlNodes == null || !xmlNodes.length) return;\r
-                                       this.setEnabled(true);\r
-                               },\r
-                               command         : null\r
-                       },\r
-                       "download" : {\r
-                               label           : "Download as...", \r
-                               icon            : "resource/slc/go-down.png",\r
-                               shortcut        : null,\r
-                               enabled         : false,\r
-                               menu            : "Selection",\r
-                               toolbar         : "selection",\r
-                               callback        : function(e){ },\r
-                               command         : null,\r
-                               submenu         : [\r
-                                               {'label':"Xsl", 'icon':'resource/slc/mime-xsl.png', 'commandId':'xsl'},\r
-                                               {'label':"Xml", 'icon':'resource/slc/mime-xml.png', 'commandId':'xml'},\r
-                                               {'label':"Excel", 'icon':'resource/slc/mime-xls.png', 'commandId':'xls'},\r
-                                               {'label':"Pdf", 'icon':'resource/slc/mime-pdf.png', 'commandId':'pdf'}\r
-                                       ],\r
-                               submenuCallback : function(commandId){\r
-                                       var uuid = this.extractTestUuid();\r
-                                       var urls = {\r
-                                               xsl : "resultView.xslt",\r
-                                               xml : "resultViewXml.xslt",\r
-                                               xls : "resultView.xls",\r
-                                               pdf : "resultView.pdf"\r
-                                       };\r
-                                       var url = "../"+urls[commandId]+"?uuid="+uuid;\r
-                                       if(commandId == "xls" || commandId == "pdf"){\r
-                                               document.location.href = url;\r
-                                       }else{\r
-                                               var win = window.open(url);\r
-                                       }\r
-                               },\r
-                               selectionChange : function(viewId, xmlNodes){\r
-                                       if(viewId!="list")return;\r
-                                       //this.clearMenus();\r
-                                       this.setEnabled(false);\r
-                                       if(xmlNodes == null || !xmlNodes.length) return;\r
-                                       this.setEnabled(true);\r
-                               }\r
-                       },\r
-                       "copytocollection" : {\r
-                               label           : "Copy to...", \r
-                               icon            : "resource/slc/edit-copy.png",\r
-                               shortcut        : "Control+c",\r
-                               enabled         : false,\r
-                               menu            : "Selection",\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" || event.getDataType() == "test_cases"){\r
-                                                       var testList = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("list").getContent();\r
-                                                       testList.collectionListToMenu(this, true);\r
-                                               }\r
-                                       }, this);\r
-                               },\r
-                               selectionChange : function(viewId, xmlNodes){\r
-                                       if(viewId != "list") return;\r
-                                       this.setEnabled(false);\r
-                                       if(xmlNodes == null || !xmlNodes.length) return;\r
-                                       this.setEnabled(true);                                                  \r
-                               },\r
-                               command         : null\r
-                       },\r
-                       "deletetest" : {\r
-                               label           : "Delete", \r
-                               icon            : "resource/slc/edit-delete.png",\r
-                               shortcut        : "Control+d",\r
-                               enabled         : false,\r
-                               menu            : "Selection",\r
-                               toolbar         : "selection",\r
-                               callback        : function(e){\r
-                                       \r
-                                       var request = org.argeo.slc.ria.SlcApi.getRemoveResultService(this.getCollectionId(), this.extractTestUuid());\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
-                                       this.setEnabled(false);\r
-                                       if(xmlNodes == null || !xmlNodes.length) return;\r
-                                       this.setEnabled(true);                                                  \r
-                               },\r
-                               command         : null\r
-                       }\r
-               }\r
-       }\r
-  },\r
-  \r
-  members : {\r
-       init : function(viewPane){\r
-         this.setView(viewPane);\r
-       },\r
-       load : function(data){\r
-         this.table.set({              \r
-               statusBarVisible: false,\r
-               showCellFocusIndicator:false,\r
-               columnVisibilityButtonVisible:false,\r
-               contextMenu : org.argeo.ria.event.CommandsManager.getInstance().createMenuFromIds(["opentest", "download", "copytocollection", "deletetest"]),\r
-               decorator : new qx.ui.decoration.Background("#fff")\r
-         });\r
-         var viewPane = this.getView();\r
-         this.table.addListener("dblclick", function(e){\r
-               org.argeo.ria.event.CommandsManager.getInstance().executeCommand("opentest");\r
-         }, this);\r
-         var columnModel = this.table.getTableColumnModel(); \r
-         columnModel.getBehavior().setWidth(0, "60%");\r
-         var renderer = new org.argeo.slc.web.XmlRenderer();\r
-         columnModel.setDataCellRenderer(0, renderer);\r
-         columnModel.setDataCellRenderer(1, renderer);\r
-         \r
-         this.table.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){\r
-               var viewSelection = viewPane.getViewSelection();\r
-               viewSelection.clear();\r
-               var selectionModel = this.table.getSelectionManager().getSelectionModel();\r
-               if(!selectionModel.getSelectedCount()){\r
-                       return;\r
-               }\r
-               var ranges = this.table.getSelectionManager().getSelectionModel().getSelectedRanges();\r
-               var xmlNode = this.table.getTableModel().getRowData(ranges[0].minIndex);\r
-               viewSelection.addNode(xmlNode);\r
-               viewPane.setViewSelection(viewSelection);\r
-         }, this);             \r
-         \r
-         var select = new qx.ui.form.SelectBox();\r
-         this.getView().addHeaderComponent(select);\r
-         this.getView().setViewTitle("");\r
-         this.add(this.table, {flex:1});\r
-\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
-                       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
-                       }\r
-                }\r
-                this.setCollectionId(select.getSelected().getValue());\r
-                select.addListener("changeValue", this.collectionSelectorListener, this);\r
-         }, this);\r
-                 \r
-       },\r
-       \r
-       loadCollections : function(){\r
-               var request = org.argeo.slc.ria.SlcApi.getListCollectionsService();\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
-               var model = this.table.getTableModel();\r
-               model.removeRows(0, model.getRowCount());\r
-               var commandManager = org.argeo.ria.event.CommandsManager.getInstance();\r
-               var request = org.argeo.slc.ria.SlcApi.getListResultsService(this.getCollectionId(), null, [commandManager.getCommandById("loadtestlist"), this.getView()]);\r
-               var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};\r
-               request.addListener("completed", function(response){\r
-                       var xml = response.getContent();\r
-                       this.debug("Successfully loaded XML");\r
-                       var nodes = org.argeo.ria.util.Element.selectNodes(xml, "//slc:result-attributes", NSMap);\r
-                       //model.addRows(nodes);\r
-                       \r
-                       for(var i=0; i<nodes.length;i++){                               \r
-                               model.addRows([nodes[i]]);\r
-                       }                       \r
-               }, request);\r
-               request.send();         \r
-       },\r
-       \r
-       pollListLoading : function(state){\r
-               if(!this.timer){\r
-                       this.timer = new qx.event.Timer(5000);\r
-                       this.timer.addListener("interval", this.loadList, this);\r
-               }\r
-               if(state){\r
-                       this.loadList();\r
-                       this.timer.start();\r
-               }else{\r
-                       this.timer.stop();\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({'separator':true});\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
-                       return;\r
-               }\r
-\r
-               if(selectionType == "current_collection"){\r
-                       this.error("Not implemented yet!");                     \r
-               }else if(selectionType == "current_selection"){\r
-                       // get selection ID\r
-                       var request = org.argeo.slc.ria.SlcApi.getAddResultService(collectionId,this.extractTestUuid());\r
-                       request.addListener("completed", function(response){\r
-                               this.info("Result successfully copied to collection!");\r
-                               this.loadCollections();\r
-                       }, this);\r
-                       request.send();         \r
-               }\r
-       },\r
-       \r
-       extractTestUuid: function(){\r
-               var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};\r
-               var xmlNodes = this.getView().getViewSelection().getNodes();\r
-               var uuid = qx.dom.Node.getText(org.argeo.ria.util.Element.selectSingleNode(xmlNodes[0], "slc:uuid"));\r
-               return uuid;\r
-       },\r
-       \r
-       collectionSelectorListener : function(event){\r
-               this.setCollectionId(event.getData());\r
-               this.loadList();                \r
-       },\r
-       \r
-       addScroll : function(){\r
-               return false;\r
-       }       \r
-  }\r
-});
\ No newline at end of file
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/XmlRenderer.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/slc/web/XmlRenderer.js
deleted file mode 100644 (file)
index c369bb3..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/**\r
- * Basic helper for SLC XML results to be displayed in a qx.ui.table.\r
- * Overrides the html of the standard qx.ui.table.cellrenderer.String\r
- *  \r
- * TODO : put in org.argeo.slc.ria package\r
- * \r
- */\r
-qx.Class.define("org.argeo.slc.web.XmlRenderer",\r
-{\r
-  extend : qx.ui.table.cellrenderer.String,\r
-\r
-  /*\r
-  *****************************************************************************\r
-     MEMBERS\r
-  *****************************************************************************\r
-  */\r
-\r
-  members :\r
-  {\r
-       /**\r
-        * Overrides the parent method.\r
-        * @param cellInfo {Map} The current cell data \r
-        * @return {String}\r
-        */\r
-    _getContentHtml : function(cellInfo) {\r
-       var xmlNode = cellInfo.rowData;\r
-       if(!xmlNode) return "";\r
-       var xPath;\r
-       var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};\r
-       switch(cellInfo.col){\r
-               case 0 :\r
-                       xPath = "slc:uuid";\r
-                       var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath, NSMap);\r
-                       var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || "Not Found");\r
-                       break;\r
-               case 1 : \r
-                       xPath = "slc:close-date";\r
-                       var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath, NSMap);\r
-                       var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || "NOT CLOSED");\r
-                       if(value == "NOT CLOSED") return value;\r
-                       var splits = value.split(".");\r
-                       value = splits[0].replace("T", " ");                            \r
-                       var dateFormat = new qx.util.format.DateFormat("yyyy-MM-dd HH:mm:ss");\r
-                       try {\r
-                               var date = dateFormat.parse(value);\r
-                               var dateFormat2 = new qx.util.format.DateFormat("MMM d, yy HH:mm:ss");\r
-                               return dateFormat2.format(date);\r
-                       }catch(e){}\r
-                       break;\r
-               default :\r
-                       return "";\r
-                       break;\r
-       }\r
-       \r
-       return value;\r
-    },\r
-    \r
-    // overridden\r
-    /**\r
-     * Overrides parent method\r
-     * @param cellInfo {Map} Current cell data\r
-     * @return {String}\r
-     */\r
-    _getCellClass : function(cellInfo) {\r
-               return this.base(arguments, cellInfo);\r
-    }\r
-    \r
-  }\r
-});
\ No newline at end of file