]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/FlowsSelectorView.js
Ignore MANIFESTs
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / slc / class / org / argeo / slc / ria / FlowsSelectorView.js
index 4d3494f50ebc69bba5285d8a9e3c825cfc15d92e..755fc1d0eca7472f315714dcff097013c4eaf2d1 100644 (file)
@@ -29,6 +29,10 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                instanceLabel : {\r
                        init : ""\r
                },\r
+               executeAfterAdd : {\r
+                       init : false,\r
+                       check : "Boolean"\r
+               },\r
                /**\r
                 * Commands definition, see\r
                 * {@link org.argeo.ria.event.CommandsManager#definitions}\r
@@ -37,7 +41,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                        init : {\r
                                "addtobatch" : {\r
                                        label : "Add to batch",\r
-                                       icon : "org.argeo.slc.ria/list-add.png",\r
+                                       icon : "org/argeo/slc/ria/list-add.png",\r
                                        shortcut : null,\r
                                        enabled : true,\r
                                        menu : null,\r
@@ -65,6 +69,11 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                                                return;\r
                                                        }\r
                                                }\r
+                                               if(this.getExecuteAfterAdd() && batchView.getCommands()){\r
+                                                       batchView.setForceClearPreference(true);\r
+                                                       batchView.getCommands()["submitform"].command.execute();\r
+                                               }\r
+                                               this.setExecuteAfterAdd(false);\r
                                        },\r
                                        selectionChange : function(viewId, selection) {\r
                                                if (viewId != "form:tree")\r
@@ -124,19 +133,20 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                },\r
                                "reloadfull" : {\r
                                        label : "Reload Agents",\r
-                                       icon : "org.argeo.slc.ria/view-refresh.png",\r
+                                       icon : "org/argeo/slc/ria/view-refresh.png",\r
                                        shortcut : "control+h",\r
                                        enabled : true,\r
                                        menu : "Launcher",\r
                                        toolbar : "list",\r
                                        callback : function(e) {\r
-                                               this.rootNode.reload();\r
+                                               this.rootNode.setState("loading");\r
+                                               this.rootNode.load();\r
                                        },\r
                                        command : null\r
                                },                              \r
                                "reloadtree" : {\r
                                        label : "Reload Node",\r
-                                       icon : "org.argeo.slc.ria/view-refresh.png",\r
+                                       icon : "org/argeo/slc/ria/view-refresh.png",\r
                                        shortcut : null,\r
                                        enabled : false,\r
                                        menu : null,\r
@@ -226,7 +236,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                        }\r
                        var req = org.argeo.slc.ria.SlcApi.getListAgentsService("agents");                      \r
                        var agents = {};\r
-                       if(folder.getState() == "loaded" && folder.getUserData("agentsMap")){\r
+                       if(folder.getUserData("agentsMap")){\r
                                // Diff loading, just add new nodes.\r
                                agents = folder.getUserData("agentsMap");\r
                                var newAgents = {};\r
@@ -254,10 +264,10 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                        agentFolder.setUserData("agentUuid", uuid);\r
                                        if(preferredHosts && preferredHosts instanceof Array && qx.lang.Array.contains(preferredHosts, host)){\r
                                                folder.addAtBegin(agentFolder);\r
-                                               agentFolder.setIcon("org.argeo.slc.ria/computer_bookmarked.png");\r
+                                               agentFolder.setIcon("org/argeo/slc/ria/computer_bookmarked.png");\r
                                        }else{\r
                                                folder.add(agentFolder);\r
-                                               agentFolder.setIcon("org.argeo.slc.ria/computer.png");\r
+                                               agentFolder.setIcon("org/argeo/slc/ria/computer.png");\r
                                        }\r
                                }\r
                                if(newAgents){\r
@@ -274,7 +284,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                }\r
                                folder.setUserData("agentsMap", agents);\r
                                folder.setLoaded(true);\r
-                               folder.getTree().fireEvent("changeSelection");                          \r
+                               folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection());                             \r
                        });\r
                        req.addListener("failed", function(response) {\r
                                                folder.setLoaded(true);\r
@@ -322,7 +332,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                                                        name : key,\r
                                                                        version : module.getVersion()\r
                                                                });\r
-                                               versionFolder.setIcon("org.argeo.slc.ria/archive.png");\r
+                                               versionFolder.setIcon("org/argeo/slc/ria/archive.png");\r
                                                versionFolder.setUserData("agentUuid", agentId);\r
                                                var sep = (module.getDescription()!=""?" - ":"");\r
                                                org.argeo.slc.ria.FlowsSelectorView.attachToolTip(versionFolder, key + ' (' + module.getVersion() + ')'+sep+module.getDescription());\r
@@ -332,7 +342,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                        }\r
                                }\r
                                folder.setLoaded(true);\r
-                               folder.getTree().fireEvent("changeSelection");\r
+                               folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection());\r
                        });\r
                        req.addListener("failed", function(response) {\r
                                folder.setLoaded(true);\r
@@ -365,12 +375,24 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                }\r
                                var execFlows = executionModule.getExecutionFlows();\r
                                for (var key in execFlows) {\r
-                                       var file = new qx.ui.tree.TreeFile(key);\r
+                                       var path = execFlows[key].getPath();\r
+                                       var name = execFlows[key].getName();\r
+                                       var nodeLabel = key;\r
+                                       var sep = "\/";\r
+                                       if(name && name.indexOf(sep)>-1 && !path){\r
+                                               // Use given name to build the path.\r
+                                               // split dirname and basename\r
+                                               var parts = name.split(sep);\r
+                                               var basename = parts.pop();\r
+                                               var dirname = parts.join("/");\r
+                                               path = dirname;\r
+                                               nodeLabel = basename;\r
+                                       }\r
+                                       var file = new qx.ui.tree.TreeFile(nodeLabel);\r
                                        if(execFlows[key].getDescription() != ""){\r
                                                org.argeo.slc.ria.FlowsSelectorView.attachToolTip(file, execFlows[key].getDescription());\r
                                        }\r
-                                       file.setIcon("org.argeo.slc.ria/system.png");\r
-                                       var path = execFlows[key].getPath();\r
+                                       file.setIcon("org/argeo/slc/ria/system.png");\r
                                        file.setUserData("executionModule",     executionModule);\r
                                        file.setUserData("executionFlow", execFlows[key]);\r
                                        file.setUserData("agentUuid", agentUuid);\r
@@ -380,7 +402,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                        folder.appendDragData(file);\r
                                }\r
                                folder.setLoaded(true);\r
-                               folder.getTree().fireEvent("changeSelection");\r
+                               folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection());\r
                        });\r
                        req.addListener("failed", function(response) {\r
                                folder.setLoaded(true);\r
@@ -530,10 +552,10 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                        }\r
                        if(qx.lang.Array.contains(prefArray, hostName)){\r
                                qx.lang.Array.remove(prefArray, hostName);\r
-                               agentNode.setIcon("org.argeo.slc.ria/computer.png");\r
+                               agentNode.setIcon("org/argeo/slc/ria/computer.png");\r
                        }else{\r
                                prefArray.push(hostName);\r
-                               agentNode.setIcon("org.argeo.slc.ria/computer_bookmarked.png");\r
+                               agentNode.setIcon("org/argeo/slc/ria/computer_bookmarked.png");\r
                                var parent = agentNode.getParent();\r
                                parent.remove(agentNode);\r
                                parent.addAtBegin(agentNode);\r
@@ -565,7 +587,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                        "Loading Agents", dragData);\r
                        this.tree.setRoot(this.rootNode);\r
                        this.tree.setHideRoot(true);\r
-                       this.rootNode.setPersistentTreeID("org.argeo.slc.ria.FlowsSelector")\r
+                       this.rootNode.setPersistentTreeID("org/argeo/slc/ria.FlowsSelector")\r
                        this.rootNode.setOpen(true);\r
                        this.tree.setContextMenu(org.argeo.ria.event.CommandsManager\r
                                        .getInstance().createMenuFromIds(["addtobatch",\r
@@ -581,6 +603,15 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                }\r
                        }, this);\r
 \r
+                       this.tree.addListener("dblclick", function(e){\r
+                               var sel = this.tree.getSortedSelection();\r
+                               if(sel && sel.length!=1)  return;\r
+                               var origin = sel[0];\r
+                               if(origin.classname == "qx.ui.tree.TreeFile"){\r
+                                       this.setExecuteAfterAdd(true);\r
+                                       this.getCommands()["addtobatch"].command.execute();\r
+                               }\r
+                       }, this);\r
 \r
                        this.add(this.tree);\r
                },\r