X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2FNewLauncherApplet.js;h=383b1d0bff88422cbec029f64324407e8077d578;hb=d8f7abb3102580b01ffbeecc201f7bdfbd082150;hp=640712e9afc362c883773fa287068aaf379db325;hpb=d8e9131cdd34b663a03008df8eb97616694259ce;p=gpl%2Fargeo-slc.git diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js index 640712e9a..383b1d0bf 100644 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js +++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js @@ -33,23 +33,28 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", init : true, check : "Boolean" }, + batchAgentId : { + init : null, + nullable : true, + check : "String", + event : "changeBatchAgentId" + }, /** * Commands definition, see {@link org.argeo.ria.event.CommandsManager#definitions} */ commands : { init : { "submitform" : { - label : "Execute Batch On...", + label : "Execute Batch", icon : "resource/slc/media-playback-start.png", shortcut : null, - enabled : true, + enabled : false, menu : "Launcher", - toolbar : null, - callback : function(e){}, - submenu : [], - submenuCallback : function(commandId){ - //alert("Execute Batch on Agent "+commandId); - this.executeBatchOnAgent(commandId); + toolbar : "launcher", + callback : function(e){ + if(this.getBatchAgentId()){ + this.executeBatchOnAgent(this.getBatchAgentId()); + } }, command : null }, @@ -68,10 +73,19 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", if(!selection || selection.length != 1) return; var item = selection[0]; this.setEnabled(false); - if(qx.Class.isSubClassOf(qx.Class.getByName(item.classname), qx.ui.tree.TreeFile)){ - this.setEnabled(true); + switch(item.classname){ + case "qx.ui.tree.TreeFile" : + this.setEnabled(true); + break; + case "qx.ui.tree.TreeFolder" : + if(item.getTree().getRoot() == item) break; + this.setEnabled(true); + break; + case "org.argeo.ria.components.DynamicTreeFolder": + if(item.getTree().getRoot() == item) break; + if(item.getState() == "loaded") this.setEnabled(true); + break; } - }, command : null }, @@ -99,14 +113,21 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", toolbar : null, callback : function(e){ var sel = this.list.getSortedSelection(); - var item = sel[0]; - var specEditor = new org.argeo.slc.ria.execution.SpecEditor(item.getUserData("batchEntrySpec")); - specEditor.attachAndShow(); + var spec = sel[0].getUserData("batchEntrySpec"); + if(spec.hasEditableValues()){ + var specEditor = new org.argeo.slc.ria.execution.SpecEditor(spec); + specEditor.attachAndShow(); + } }, selectionChange : function(viewId, selection){ if(viewId != "form:list") return; this.setEnabled(false); - if((selection && selection.length == 1)) this.setEnabled(true); + if((selection && selection.length == 1)) { + var selectedItemSpec = selection[0].getUserData("batchEntrySpec"); + if(selectedItemSpec.hasEditableValues()){ + this.setEnabled(true); + } + } }, command : null }, @@ -125,6 +146,9 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", for(var i=0;i 1){ + this.setEnabled(false); + return; + } var item = selection[0]; if(!qx.Class.isSubClassOf(qx.Class.getByName(item.classname), qx.ui.tree.AbstractTreeItem)) return; this.setEnabled(false); @@ -195,53 +210,52 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", command : null } } - }, - /** - * A map containing all currently registered agents. - */ - registeredTopics : { - init : {}, - check : "Map", - event : "changeRegisteredTopics" } }, 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} + * Static loader for the "agent" level (first level) + * @param folder {qx.ui.tree.TreeFolder} The root Tree Folder. */ - flowLoader : function(folder){ - var moduleData = folder.getUserData("moduleData"); - //var pathStub = ["", "/test/toto/zobi", "loop"]; - //var indexStub = 0; - - var req = org.argeo.slc.ria.SlcApi.getLoadExecutionDescriptorService(moduleData.name, moduleData.version); + agentLoader : function(folder){ + + var req = org.argeo.slc.ria.SlcApi.getListAgentsService("agents"); + var agents = {}; 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); - var path = execFlows[key].getPath(); - //path = pathStub[indexStub]; - //indexStub ++; - file.setUserData("executionModule", executionModule); - file.setUserData("executionFlow", execFlows[key]); - org.argeo.slc.ria.NewLauncherApplet.attachNodeByPath(folder, path, file); - folder.appendDragData(file); - } - folder.setLoaded(true); + var xmlDoc = response.getContent(); + var nodes = org.argeo.ria.util.Element.selectNodes(xmlDoc, "//slc:slc-agent-descriptor"); + //var newTopics = {}; + var modulesLoader = org.argeo.slc.ria.NewLauncherApplet.modulesLoader; + for(var i=0;i 1){ + for(var i=0;i