* See {@link org.argeo.ria.event.CommandsManager#definitions} for the keys to use for defining commands.\r
*/\r
commands : {\r
- init : {}\r
+ init : {\r
+ "reload" : {\r
+ label : "Reload",\r
+ icon : "org.argeo.slc.ria/view-refresh.png",\r
+ shortcut : "control+h",\r
+ enabled : true,\r
+ menu : "Distributions",\r
+ toolbar : "list",\r
+ callback : function(e) {\r
+ this.load();\r
+ },\r
+ command : null\r
+ }\r
+ }\r
},\r
viewSelection : {\r
nullable:false, \r
\r
construct : function(){\r
this.base(arguments);\r
- this.setLayout(new qx.ui.layout.Dock()); \r
+ this.setLayout(new qx.ui.layout.Canvas()); \r
this.xmlStub = '<slc:object-list xmlns:slc="http://argeo.org/projects/slc/schemas">' +\r
'<slc:modular-distribution-descriptor name="name" version="0.1.0">' +\r
- '<slc:modulesDescriptors><slc:modulesDescriptor type="modularDistribution" url="http://localhost/modularDistribution" />' +\r
+ '<slc:modulesDescriptors><slc:modulesDescriptor type="modularDistribution" url="http://localhost/modularDistribution" >toto</slc:modulesDescriptor>' +\r
'<slc:modulesDescriptor type="eclipse" url="http://localhost/updateSite" />' +\r
'</slc:modulesDescriptors></slc:modular-distribution-descriptor>' +\r
'<slc:modular-distribution-descriptor name="name2" version="0.1.1">' +\r
init : function(viewPane, data){\r
this.setView(viewPane); \r
this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId()));\r
- this.label = new qx.ui.basic.Label("Properties");\r
- this.add(this.label, {edge : "center"});\r
+ this.tableModel = new qx.ui.table.model.Simple(); \r
+ this.tableModel.setColumns(["Name", "Version", "Modular Distribution", "Eclipse Update Site"], ["name","version","modularDistribution","eclipse"]);\r
+ this.list = new qx.ui.table.Table(this.tableModel, {\r
+ tableColumnModel: function(obj){\r
+ return new qx.ui.table.columnmodel.Resize(obj)\r
+ } \r
+ });\r
+ this.list.set({\r
+ decorator:null,\r
+ statusBarVisible : false\r
+ });\r
+ this.tableModel.setColumnEditable(2, true);\r
+ this.tableModel.setColumnEditable(3, true);\r
+ var columnModel = this.list.getTableColumnModel();\r
+ columnModel.getBehavior().setWidth(0, "15%");\r
+ columnModel.getBehavior().setWidth(1, "15%");\r
+ columnModel.getBehavior().setWidth(2, "35%");\r
+ columnModel.getBehavior().setWidth(3, "35%");\r
+ var factory = function(cellInfo){\r
+ var tField = new qx.ui.table.celleditor.TextField();\r
+ tField.setValidationFunction(function(newValue, oldValue){return oldValue;});\r
+ return tField;\r
+ };\r
+ columnModel.setCellEditorFactory(2, new qx.ui.table.celleditor.Dynamic(factory));\r
+ columnModel.setCellEditorFactory(3, new qx.ui.table.celleditor.Dynamic(factory));\r
+ this.add(this.list, {top:0,left:0,width:'100%',height:'100%'}); \r
},\r
/**\r
* The implementation should contain the real data loading (i.o. query...)\r
* @return {Boolean}\r
*/\r
load : function(){\r
- \r
+ this.tableModel.setData([]);\r
+ var req = org.argeo.slc.ria.SlcApi.getListModularDistributionsService();\r
+ req.addListener("completed", function(response){\r
+ this.parseData(response.getContent());\r
+ }, this);\r
+ req.addListener("failed", function(){\r
+ var xmlDoc = qx.xml.Document.fromString(this.xmlStub);\r
+ this.parseData(xmlDoc); \r
+ }, this);\r
+ req.send(); \r
},\r
\r
- updateData : function(node){\r
- this.label.setContent("Properties for : " + node.getLabel());\r
+ parseData : function(xmlDoc){\r
+ var data = [];\r
+ var descriptorPath = 'slc:object-list/slc:modular-distribution-descriptor';\r
+ var namePath = '@name';\r
+ var versionPath = '@version';\r
+ var distribPath = 'slc:modulesDescriptors/slc:modulesDescriptor[@type="modularDistribution"]/@url';\r
+ var eclipsePath = 'slc:modulesDescriptors/slc:modulesDescriptor[@type="eclipse"]/@url';\r
+ var nodes = org.argeo.ria.util.Element.selectNodes(xmlDoc, descriptorPath); \r
+ for(var i=0;i<nodes.length;i++){\r
+ var name = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], namePath);\r
+ var version = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], versionPath);\r
+ var distrib = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], distribPath);\r
+ var eclipse = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], eclipsePath);\r
+ data.push([name,version,distrib,eclipse]);\r
+ }\r
+ this.tableModel.setData(data);\r
},\r
+ \r
/**\r
* Whether this component is already contained in a scroller (return false) or not (return true).\r
* @return {Boolean}\r