--- /dev/null
+/**\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