+++ /dev/null
-/**\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.ria.components.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
- switch(cellInfo.col){\r
- case 0 :\r
- xPath = "param[@name='testName']";\r
- var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath);\r
- var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || "Not Found");\r
- break;\r
- case 1 : \r
- xPath = 'param[@name="date"]';\r
- var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath);\r
- //qx.log.Logger.info(nameParam);\r
- var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || 0);\r
- if(value == "NOT CLOSED") return value;\r
- var splits = value.split(".");\r
- //qx.log.Logger.info(value);\r
- var dateFormat = new qx.util.format.DateFormat("yyyy-MM-dd HH:mm:ss");\r
- try {\r
- var date = dateFormat.parse(splits[0]);\r
- var dateFormat2 = new qx.util.format.DateFormat("MMM d, yy HH:mm:ss");\r
- return dateFormat2.format(date);\r
- }catch(e){\r
- qx.log.Logger.info(e);\r
- }\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
*/\r
qx.Class.define("org.argeo.slc.web.TestList",\r
{\r
- extend : qx.ui.table.Table,\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.base(arguments, model, {\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
- this.setModel(model);\r
},\r
\r
properties : \r
view : {\r
init : null\r
},\r
- model : {\r
- init: null\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 Tests", \r
+ label : "Load Collection", \r
icon : "resource/slc/view-refresh.png",\r
shortcut : "Control+l",\r
enabled : true,\r
\r
var reports = qx.xml.Element.selectNodes(xmlNodes[0],'report[@type="download"]');\r
if(reports == null || !reports.length)return;\r
- \r
+ var submenus = [];\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
+ var commandId = qx.dom.Node.getText(org.argeo.ria.util.Element.selectSingleNode(report, "@commandid"));\r
+ submenus.push({\r
+ "label":qx.dom.Node.getText(report), \r
+ "icon":"resource/slc/mime-"+commandId+".png", \r
+ "commandId":commandId\r
+ });\r
}\r
+ this.setMenu(submenus);\r
this.setEnabled(true);\r
- this.fireDataEvent("changeMenu", this.getMenu());\r
}\r
},\r
"deletetest" : {\r
callback : function(e){\r
// Call service to delete\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
"copytocollection" : {\r
callback : function(e){\r
// Call service to copy\r
},\r
+ submenu : {},\r
+ init : function(){\r
+ // Call at command creation\r
+ org.argeo.ria.remote.RequestManager.getInstance().addListener("reload", function(event){\r
+ if(event.getDataType() != "collection") return;\r
+ this.setEnabled(false);\r
+ this.clearMenus(); \r
+ var collectionList = event.getContent();\r
+ if(!collectionList) return;\r
+ var submenus = [];\r
+ for(var key in collectionList){\r
+ submenus.push({\r
+ "label":collectionList[key], \r
+ "icon":null, \r
+ "commandId":key\r
+ });\r
+ }\r
+ this.setMenu(submenus);\r
+ var viewSelection = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneSelection("list");\r
+ if(viewSelection.getCount()) this.setEnabled(true);\r
+ }, this);\r
+ },\r
+ selectionChange : function(viewId, xmlNodes){\r
+ 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
this.setView(viewPane);\r
},\r
load : function(data){\r
- this.set({ \r
+ this.table.set({ \r
statusBarVisible: false,\r
showCellFocusIndicator:false,\r
columnVisibilityButtonVisible:false,\r
decorator : new qx.ui.decoration.Background("#fff")\r
});\r
var viewPane = this.getView();\r
- this.addListener("dblclick", function(e){\r
+ this.table.addListener("dblclick", function(e){\r
org.argeo.ria.event.CommandsManager.getInstance().executeCommand("opentest");\r
}, this);\r
- var columnModel = this.getTableColumnModel(); \r
+ var columnModel = this.table.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
+ columnModel.setDataCellRenderer(0, new org.argeo.slc.web.XmlRenderer());\r
+ columnModel.setDataCellRenderer(1, new org.argeo.slc.web.XmlRenderer());\r
\r
- this.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){\r
+ this.table.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e){\r
var viewSelection = viewPane.getViewSelection();\r
viewSelection.clear();\r
- var selectionModel = this.getSelectionManager().getSelectionModel();\r
+ var selectionModel = this.table.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
+ 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", function(dataEvent){\r
+ this.debug(dataEvent.getData());\r
+ this.setCollectionId(dataEvent.getData());\r
+ this.loadList();\r
+ }, this);\r
+\r
+ org.argeo.ria.remote.RequestManager.getInstance().addListener("reload", function(event){\r
+ if(event.getDataType()!="collection") return;\r
+ var collectionList = event.getContent();\r
+ select.removeAll();\r
+ for(key in collectionList){\r
+ var item = new qx.ui.form.ListItem(collectionList[key], null, key);\r
+ select.add(item);\r
+ if(key == this.getCollectionId()){\r
+ select.setSelected(item);\r
+ }\r
+ }\r
+ }, this);\r
+ \r
+ },\r
+ \r
+ loadCollections : function(){\r
+ this.setCollectionList({"Charles":"Collection 'Charles'","My Collection":"Collection 'My Collection'"});\r
+ org.argeo.ria.remote.RequestManager.getInstance().fireReloadEvent("collection", this.getCollectionList());\r
},\r
\r
loadList : function(){\r
var url = "/org.argeo.slc.webapp/resultList.ui";\r
- var model = this.getModel();\r
+ var model = this.table.getTableModel();\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
"application/xml",\r
"test_cases",\r
[commandManager.getCommandById("loadtestlist"), this.getView()]\r
- ); \r
+ ); \r
+ request.setParameter("collectionId", this.getCollectionId());\r
request.addListener("completed", function(response){\r
xml = response.getContent();\r
qx.log.Logger.info("Successfully loaded XML");\r
}, request);\r
request.send(); \r
},\r
- \r
+ \r
addScroll : function(){\r
return false;\r
} \r
--- /dev/null
+/**\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
+ switch(cellInfo.col){\r
+ case 0 :\r
+ xPath = "param[@name='testName']";\r
+ var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath);\r
+ var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || "Not Found");\r
+ break;\r
+ case 1 : \r
+ xPath = 'param[@name="date"]';\r
+ var nameParam = org.argeo.ria.util.Element.selectSingleNode(xmlNode, xPath);\r
+ //qx.log.Logger.info(nameParam);\r
+ var value = qx.bom.String.escape(qx.dom.Node.getText(nameParam) || 0);\r
+ if(value == "NOT CLOSED") return value;\r
+ var splits = value.split(".");\r
+ //qx.log.Logger.info(value);\r
+ var dateFormat = new qx.util.format.DateFormat("yyyy-MM-dd HH:mm:ss");\r
+ try {\r
+ var date = dateFormat.parse(splits[0]);\r
+ var dateFormat2 = new qx.util.format.DateFormat("MMM d, yy HH:mm:ss");\r
+ return dateFormat2.format(date);\r
+ }catch(e){\r
+ qx.log.Logger.info(e);\r
+ }\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