+ statics : {
+ /**
+ * Loader for the "flow" level : takes a folder containing "moduleData" and create its children.
+ * @param folder {qx.ui.tree.TreeFolder} A Tree folder containing in the key "moduleData" of its user data a map containing the keys {name,version}
+ */
+ flowLoader : function(folder){
+ var moduleData = folder.getUserData("moduleData");
+ //var req = org.argeo.ria.remote.RequestManager.getInstance().getRequest("../argeo-ria-src/stub.xml", "GET", "application/xml");
+ var req = org.argeo.slc.ria.SlcApi.getLoadExecutionDescriptorService(moduleData.name, moduleData.version);
+ req.addListener("completed", function(response){
+ var executionModule = new org.argeo.slc.ria.execution.Module();
+ executionModule.setXmlNode(response.getContent());
+ var execFlows = executionModule.getExecutionFlows();
+ for(var key in execFlows){
+ var file = new qx.ui.tree.TreeFile(key);
+ file.setUserData("executionModule", executionModule);
+ file.setUserData("executionFlow", execFlows[key]);
+ folder.add(file);
+ }
+ folder.setLoaded(true);
+ });
+ req.send();
+ },
+
+ /**
+ * Loader for the "modules" level : takes any tree folder, currently the root folder.
+ * @param folder {qx.ui.tree.TreeFolder} The root folder
+ */
+ modulesLoader : function(folder){
+ var req = org.argeo.slc.ria.SlcApi.getListModulesService();
+ req.addListener("completed", function(response){
+ var descriptors = org.argeo.ria.util.Element.selectNodes(response.getContent(), "slc:object-list/slc:execution-module-descriptor");
+ var mods = {};
+ // STUB
+ /*
+ var mods = {
+ "Module 1":["ver1.1", "ver1.2", "ver1.3"],
+ "Module 2":["ver2.1", "ver2.2", "ver2.3", "ver2.4"],
+ "Module 3":["ver3.1", "ver3.2"]
+ };
+ */
+ for(var i=0;i<descriptors.length; i++){
+ var name = org.argeo.ria.util.Element.getSingleNodeText(descriptors[i], "slc:name");
+ var version = org.argeo.ria.util.Element.getSingleNodeText(descriptors[i], "slc:version");
+ if(!mods[name]) mods[name] = [];
+ mods[name].push(version);
+ }
+ var flowLoader = org.argeo.slc.ria.NewLauncherApplet.flowLoader;
+ for(var key in mods){
+ var moduleFolder = new qx.ui.tree.TreeFolder(key);
+ folder.add(moduleFolder);
+ for(var i=0;i<mods[key].length;i++){
+ var versionFolder = new org.argeo.ria.components.DynamicTreeFolder(
+ mods[key][i],
+ flowLoader,
+ "Loading Flows",
+ folder.getDragData()
+ );
+ moduleFolder.add(versionFolder);
+ versionFolder.setUserData("moduleData", {name:key, version:mods[key][i]});
+ }
+ folder.setLoaded(true);
+ }
+ });
+ req.send();
+ }
+ },
+