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
},
},
command : null
},
- "reloadagents" : {
- label : "Reload Agents",
- icon : "resource/slc/view-refresh.png",
- shortcut : "Control+r",
- enabled : true,
- menu : "Launcher",
- toolbar : "launcher",
- callback : function(e){
- //var req = org.argeo.slc.ria.SlcApi.getListAgentsService("agents");
- //req.send();
- this.rootNode.reload();
- },
- command : null
- },
"reloadtree" : {
label : "Reload",
icon : "resource/slc/view-refresh.png",
menu : "Launcher",
toolbar : "launcher",
callback : function(e){
- var selected = this.tree.getSelectedItem();
+ var selected = this.tree.getSelection()[0];
if(selected.classname == "org.argeo.ria.components.DynamicTreeFolder"){
if(selected.getUserData("moduleData")){
// It's a "module" node, first trigger the reloadBundle.service
},
selectionChange : function(viewId, selection){
if(viewId != "form:tree") return;
- if(!selection || selection.length != 1) return;
+ if(!selection) return;
+ if(selection.length > 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);
folder.getDragData()
);
agentFolder.setUserData("agentUuid", uuid);
- agentFolder.setIcon("resource/slc/mime-xsl.png");
+ agentFolder.setIcon("resource/slc/mime-xsl-22.png");
folder.add(agentFolder);
}
folder.setUserData("agentsMap", agents);
this._createLayout();
this.getView().setViewTitle("Execution Launcher");
var reloadHandler = function(message){
- // Delay reload to be sure the jms was first integrated by the db, then ask the db.
- qx.event.Timer.once(function(){
- org.argeo.ria.event.CommandsManager.getInstance().getCommandById("reloadagents").execute();
- }, this, 1000);
+ this.rootNode.reload();
}
this._amqClient.addListener("agentregister", "topic://agent.register", reloadHandler, this);
this._amqClient.addListener("agentunregister", "topic://agent.unregister", reloadHandler, this);
this.tree = new qx.ui.tree.Tree();
this.tree.setDecorator(null);
+ this.tree.setSelectionMode("multi");
var dragData = {
"file" : {
"type" : ["items"],
"action":["move"]
- }/*,
+ },
"folder" : {
"type" : ["items"],
"action":["move"]
- }*/
+ }
};
this.rootNode = new org.argeo.ria.components.DynamicTreeFolder(
var toolGroup = new qx.ui.toolbar.Part();
listToolBar.add(toolGroup);
- this.batchLabel = new qx.ui.basic.Atom(this._emptyAgentString, "resource/slc/mime-xsl.png");
+ this.batchLabel = new qx.ui.basic.Atom(this._emptyAgentString, "resource/slc/mime-xsl-22.png");
this.batchLabel.setPadding(6);
toolGroup.add(this.batchLabel);
this.addListener("changeBatchAgentId", function(event){
if(afterItem.classname != "qx.ui.form.ListItem") afterItem = null;
if(!target){
target = this.list.getSortedSelection()[0];
+ this._addFlowToBatch(target, afterItem);
+ }else{
+ this._addFlowToBatch(null, afterItem);
}
- this._addFlowToBatch(target, afterItem);
}, this);
this.listPane.add(this.list, {edge:"center"});
* @param target {mixed} The dropped target, can be a TreeFile (add) or a ListItem (reorder).
* @param after {qx.ui.form.ListItem} Optional list item : if set, the flow will be added as a new list item positionned after this one.
*/
- _addFlowToBatch : function(target, after){
-
- // Empty or list target
- if(!target){
- target = this.tree.getSelectedItem();
- if(!target) return;
- }else if(target.classname == "qx.ui.form.ListItem"){
+ _addFlowToBatch : function(target, after, skipAutoOpen){
+ if(target && target.classname == "qx.ui.form.ListItem"){
if(!after) return;
if(after == "first") this.list.addAt(target, 0);
else this.list.addAfter(target, after);
return;
}
- // Folder case, not really working yet.
+ if(!target){
+ if(this.tree.isSelectionEmpty()){
+ return;
+ }
+ selection = this.tree.getSelection();
+ if(selection.length > 1){
+ for(var i=0;i<selection.length;i++){
+ this._addFlowToBatch(selection[i], null, true);
+ }
+ return;
+ }else{
+ target = selection[0];
+ }
+ }
+
+ // Folder case
if(qx.Class.isSubClassOf(qx.Class.getByName(target.classname), qx.ui.tree.TreeFolder)){
var allChildren = target.getItems(true);
- for(var i=0;i<allChildren.length;i++){
- if(allChildren[i].classname == "qx.ui.tree.TreeFile"){
- this._addFlowToBatch(allChildren[i]);
- }else{
- allChildren[i].setOpen(true);
+ for(var i=0;i<allChildren.length;i++){
+ if(allChildren[i].getUserData("executionFlow")){
+ this._addFlowToBatch(allChildren[i], null, true);
}
}
return;
var executionFlow = target.getUserData("executionFlow");
var batchEntry = new org.argeo.slc.ria.execution.BatchEntrySpec(executionModule, executionFlow);
var label = batchEntry.getLabel();
- var icon = target.getIcon() || "mimetypes/office-document.png";
+ var icon = target.getIcon() || "resource/slc/office-document.png";
var item = new qx.ui.form.ListItem(label, icon);
item.addListener("dblclick", function(e){
this.getCommands()["editexecutionspecs"].command.execute();
this.list.add(item);
}
this.list.select(item);
- if(this.getAutoOpen()){
+ if(this.getAutoOpen() && !skipAutoOpen){
this.getCommands()["editexecutionspecs"].command.execute();
}
},