]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/TestList.js
Refactoring part II (src move)
[gpl/argeo-slc.git] / org.argeo.slc.webapp / src / main / webapp / source / class / org / argeo / slc / web / TestList.js
diff --git a/org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/TestList.js b/org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/TestList.js
new file mode 100644 (file)
index 0000000..7863de1
--- /dev/null
@@ -0,0 +1,210 @@
+/**\r
+ * @author Charles\r
+ */\r
+qx.Class.define("org.argeo.slc.web.TestList",\r
+{\r
+  extend : qx.ui.table.Table,\r
+  implement : [org.argeo.ria.components.IView], \r
+\r
+  construct : function(){\r
+       var model = new qx.ui.table.model.Simple();\r
+       model.setColumns(["Test Case", "Date"]);\r
+       this.base(arguments, model, {\r
+               tableColumnModel: function(obj){\r
+                       return new qx.ui.table.columnmodel.Resize(obj)\r
+               }\r
+       });\r
+       this.setModel(model);\r
+  },\r
+\r
+  properties : \r
+  {\r
+       view : {\r
+               init : null\r
+       },\r
+       model : {\r
+               init: null\r
+       },\r
+       commands : {\r
+               init : {\r
+                       "loadtestlist" : {\r
+                               label           : "Load Tests", \r
+                               icon            : "resource/slc/view-refresh.png",\r
+                               shortcut        : "Control+l",\r
+                               enabled         : true,\r
+                               menu            : "File",\r
+                               toolbar         : "test",\r
+                               callback        : function(e){\r
+                                       this.loadList();\r
+                               }, \r
+                               command         : null\r
+                       },\r
+                       "opentest" : {\r
+                               label           : "Open", \r
+                               icon            : "resource/slc/document-open.png",\r
+                               shortcut        : "Control+o",\r
+                               enabled         : false,\r
+                               menu            : "Selection",\r
+                               toolbar         : "test",\r
+                               callback        : function(e){\r
+                                       var viewsManager = org.argeo.ria.components.ViewsManager.getInstance();\r
+                                       var classObj = org.argeo.slc.web.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
+                                       var applet = org.argeo.ria.util.Element.selectSingleNode(xmlNodes[0],'report[@type="applet"]'); \r
+                                       if(applet != null && qx.dom.Node.getText(applet) != ""){\r
+                                               this.setEnabled(true);                                                  \r
+                                       }                                       \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         : "test",\r
+                               callback        : function(e){ },\r
+                               command         : null,\r
+                               submenu         : {},\r
+                               submenuCallback : function(commandId){\r
+                                       var viewsManager = org.argeo.ria.components.ViewsManager.getInstance();\r
+                                       var xmlNodes = viewsManager.getViewPaneSelection("list").getNodes();\r
+                                       // Single selection\r
+                                       var uuid = qx.xml.Element.getSingleNodeText(xmlNodes[0], 'param[@name="uuid"]');\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) return;\r
+                                       \r
+                                       var reports = qx.xml.Element.selectNodes(xmlNodes[0],'report[@type="download"]');\r
+                                       if(reports == null || !reports.length)return;\r
+                                       \r
+                                       for(var i=0; i<reports.length;i++){\r
+                                               var report = reports[i];\r
+                                               var commandId = qx.dom.Node.getText(org.argeo.ria.util.Element.selectSingleNode(report, "@commandid")); \r
+                                               this.addSubMenuButton(\r
+                                                       qx.dom.Node.getText(report),\r
+                                                       "resource/slc/mime-"+commandId+".png",\r
+                                                       commandId\r
+                                               );\r
+                                       }\r
+                                       this.setEnabled(true);\r
+                                       this.fireDataEvent("changeMenu", this.getMenu());\r
+                               }\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         : "test",\r
+                               callback        : function(e){\r
+                                       // Call service to delete\r
+                               },\r
+                               command         : null\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         : "test",\r
+                               callback        : function(e){\r
+                                       // Call service to copy\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.set({            \r
+               statusBarVisible: false,\r
+               showCellFocusIndicator:false,\r
+               columnVisibilityButtonVisible:false,\r
+               contextMenu : org.argeo.ria.event.CommandsManager.getInstance().createMenuFromIds(["opentest", "deletetest", "copytocollection"]),\r
+               decorator : new qx.ui.decoration.Background("#fff")\r
+         });\r
+         var viewPane = this.getView();\r
+         this.addListener("dblclick", function(e){\r
+               org.argeo.ria.event.CommandsManager.getInstance().executeCommand("opentest");\r
+         }, this);\r
+         var columnModel = this.getTableColumnModel(); \r
+         columnModel.getBehavior().setWidth(0, "60%");\r
+         columnModel.setDataCellRenderer(0, new org.argeo.ria.components.XmlRenderer());\r
+         columnModel.setDataCellRenderer(1, new org.argeo.ria.components.XmlRenderer());\r
+         \r
+         this.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){\r
+               var viewSelection = viewPane.getViewSelection();\r
+               viewSelection.clear();\r
+               var selectionModel = this.getSelectionManager().getSelectionModel();\r
+               if(!selectionModel.getSelectedCount()){\r
+                       return;\r
+               }\r
+               var ranges = this.getSelectionManager().getSelectionModel().getSelectedRanges();\r
+               var xmlNode = this.getModel().getRowData(ranges[0].minIndex);\r
+               viewSelection.addNode(xmlNode);\r
+               viewPane.setViewSelection(viewSelection);\r
+         }, this);             \r
+       },\r
+       \r
+       loadList : function(){\r
+               var url = "/org.argeo.slc.webapp/resultList.ui";\r
+               var model = this.getModel();\r
+               model.removeRows(0, model.getRowCount());\r
+               var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
+               var commandManager = org.argeo.ria.event.CommandsManager.getInstance();\r
+               var request = serviceManager.getRequest(\r
+                       url, \r
+                       "GET", \r
+                       "application/xml",\r
+                       "test_cases",\r
+                       [commandManager.getCommandById("loadtestlist"), this.getView()]\r
+               );              \r
+               request.addListener("completed", function(response){\r
+                       xml = response.getContent();\r
+                       qx.log.Logger.info("Successfully loaded XML");\r
+                       //var resManager = org.argeo.ria.event.ResourcesManager.getInstance().fireReloadEvent("test_cases", xml);\r
+                       var nodes = qx.xml.Element.selectNodes(xml, "//data");\r
+                       for(var i=0; i<nodes.length;i++){\r
+                               var rowData = nodes[i];\r
+                               model.addRows([rowData]);\r
+                       }\r
+               }, request);\r
+               request.send();         \r
+       },\r
+       \r
+       addScroll : function(){\r
+               return false;\r
+       }       \r
+  }\r
+});
\ No newline at end of file