Bases for monitoring perspective
authorCharles du Jeu <charles.dujeu@gmail.com>
Thu, 23 Jul 2009 10:02:12 +0000 (10:02 +0000)
committerCharles du Jeu <charles.dujeu@gmail.com>
Thu, 23 Jul 2009 10:02:12 +0000 (10:02 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@2728 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/DistListView.js
server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/FlowsSelectorView.js [deleted file]
server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/UploadView.js [new file with mode: 0644]

index 850892e57645d2e5600aaa507d020c086394b533..129d1a91a62974ac51b1b9c52bebb177952b881b 100644 (file)
@@ -1,4 +1,4 @@
-qx.Class.define("org.argeo.slc.ria.monitor.PropertiesView", {\r
+qx.Class.define("org.argeo.slc.ria.monitor.DistListView", {\r
        extend : qx.ui.container.Composite,\r
        implement : [org.argeo.ria.components.IView], \r
        \r
diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/FlowsSelectorView.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/FlowsSelectorView.js
deleted file mode 100644 (file)
index b049c2e..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-/**\r
- * The selector view\r
- * \r
- */\r
-qx.Class.define("org.argeo.slc.ria.monitor.FlowsSelectorView", {\r
-       extend : org.argeo.slc.ria.FlowsSelectorView,\r
-       implement : [org.argeo.ria.components.IView],\r
-\r
-       construct : function() {\r
-               this.base(arguments);\r
-       },\r
-\r
-       properties : {\r
-               /**\r
-                * Commands definition, see\r
-                * {@link org.argeo.ria.event.CommandsManager#definitions}\r
-                */\r
-               commands : {\r
-                       refine : true,\r
-                       init : {\r
-                               "reloadtree" : {\r
-                                       label : "Reload",\r
-                                       icon : "org.argeo.slc.ria/view-refresh.png",\r
-                                       shortcut : "Control+m",\r
-                                       enabled : false,\r
-                                       menu : "Launcher",\r
-                                       toolbar : "launcher",\r
-                                       callback : function(e) {\r
-                                               if (this.tree.isSelectionEmpty()) {     return; }                                               \r
-                                               var selected = this.tree.getSelection()[0];\r
-                                               if (selected.classname == "org.argeo.ria.components.DynamicTreeFolder") {\r
-                                                       if (selected.getUserData("moduleData")) {\r
-                                                               // It's a "module" node, first trigger the\r
-                                                               // reloadBundle.service\r
-                                                               selected.setUserData("dataModel", {});\r
-                                                               selected.setEnabled(false);\r
-                                                               selected.setOpen(false);\r
-                                                               var moduleData = selected\r
-                                                                               .getUserData("moduleData");\r
-                                                               var bundleService = org.argeo.slc.ria.SlcApi\r
-                                                                               .getReloadBundleService(\r
-                                                                                               moduleData.name,\r
-                                                                                               moduleData.version);\r
-                                                               bundleService.addListener("completed",\r
-                                                                               function(response) {\r
-                                                                                       selected.setEnabled(true);\r
-                                                                                       selected.setOpen(true);\r
-                                                                                       selected.reload();\r
-                                                                               }, this);\r
-                                                               // bundleService.send();\r
-                                                               // Do not send, not implemented yet, false timer\r
-                                                               // instead.\r
-                                                               qx.event.Timer.once(function(response) {\r
-                                                                                       selected.setEnabled(true);\r
-                                                                                       selected.setOpen(true);\r
-                                                                                       selected.reload();\r
-                                                                               }, this, 2000);\r
-                                                       } else {\r
-                                                               selected.reload();\r
-                                                       }\r
-                                               }\r
-                                       },\r
-                                       selectionChange : function(viewId, selection) {\r
-                                               if (viewId != "form:tree")\r
-                                                       return;\r
-                                               if (!selection)\r
-                                                       return;\r
-                                               if (selection.length > 1) {\r
-                                                       this.setEnabled(false);\r
-                                                       return;\r
-                                               }\r
-                                               var item = selection[0];\r
-                                               if (!qx.Class.isSubClassOf(qx.Class\r
-                                                                               .getByName(item.classname),\r
-                                                               qx.ui.tree.AbstractTreeItem))\r
-                                                       return;\r
-                                               this.setEnabled(false);\r
-                                               if (qx.Class.isSubClassOf(qx.Class\r
-                                                                               .getByName(item.classname),\r
-                                                               org.argeo.ria.components.DynamicTreeFolder)) {\r
-                                                       this.setEnabled(true);\r
-                                               }\r
-                                       },\r
-                                       command : null\r
-                               }\r
-                       }\r
-               }\r
-       },\r
-\r
-       statics : {\r
-               \r
-               riaPreferences : {\r
-                       "flowSelector.monitor.preferred.hosts" : {\r
-                               label : "Preferred Hosts (Monitoring View)",\r
-                               type  : "string"\r
-                       }\r
-               },\r
-               \r
-               /**\r
-                * Static loader for the "agent" level (first level)\r
-                * \r
-                * @param folder\r
-                *            {org.argeo.ria.components.PersistentTreeFolder} The root Tree Folder.\r
-                */\r
-               agentLoader : function(folder) {\r
-\r
-                       var req = org.argeo.slc.ria.SlcApi.getListAgentsService("agents");                      \r
-                       var agents = {};\r
-                       if(folder.getState() == "loaded" && folder.getUserData("agentsMap")){\r
-                               // Diff loading, just add new nodes.\r
-                               agents = folder.getUserData("agentsMap");\r
-                               var newAgents = {};\r
-                       }\r
-                       req.addListener("completed", function(response) {\r
-                               var xmlDoc = response.getContent();\r
-                               var nodes = org.argeo.ria.util.Element.selectNodes(xmlDoc,\r
-                                               "//slc:slc-agent-descriptor");\r
-                               var modulesLoader = org.argeo.slc.ria.FlowsSelectorView.modulesLoader;\r
-                               \r
-                               for (var i = 0; i < nodes.length; i++) {\r
-                                       var uuid = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], "@uuid");\r
-                                       var host = org.argeo.ria.util.Element.getSingleNodeText(nodes[i], "slc:host");\r
-                                       if(agents[uuid]){\r
-                                               newAgents[uuid] = host;\r
-                                               continue;\r
-                                       }\r
-                                       agents[uuid] = host;\r
-                                       if(newAgents) newAgents[uuid] = host;\r
-                                       var agentFolder = new org.argeo.ria.components.DynamicTreeFolder(\r
-                                                       host + ' (' + uuid + ')', modulesLoader,\r
-                                                       "Loading Modules...", folder.getDragData());\r
-                                       agentFolder.setUserData("agentUuid", uuid);\r
-                                       agentFolder.setIcon("org.argeo.slc.ria/mime-xsl-22.png");\r
-                                       folder.add(agentFolder);\r
-                               }\r
-                               if(newAgents){\r
-                                       // Make sure some agents should not be removed\r
-                                       for(var agentKey in agents){\r
-                                               if(!newAgents[agentKey]){\r
-                                                       var node = org.argeo.slc.ria.FlowsSelectorView.findAgentNodeById(folder, agentKey);\r
-                                                       if(node) folder.remove(node);\r
-                                                       delete agents[agentKey];\r
-                                                       var batchView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("batch").getContent();\r
-                                                       if(batchView) batchView.clearBatchForAgentId(agentKey);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               folder.setUserData("agentsMap", agents);\r
-                               folder.setLoaded(true);\r
-                               folder.getTree().fireEvent("changeSelection");                          \r
-                       });\r
-                       req.addListener("failed", function(response) {\r
-                                               folder.setLoaded(true);\r
-                                       });\r
-                       req.send();\r
-\r
-               },\r
-\r
-               /**\r
-                * Loader for the "modules" level : takes any tree folder, currently the\r
-                * root folder.\r
-                * \r
-                * @param folder\r
-                *            {org.argeo.ria.components.PersistentTreeFolder} The root folder\r
-                */\r
-               modulesLoader : function(folder) {\r
-                       var agentId = folder.getUserData("agentUuid");\r
-                       var req = org.argeo.slc.ria.SlcApi.getListModulesService(agentId);\r
-                       req.addListener("completed", function(response) {\r
-                               var descriptors = org.argeo.ria.util.Element.selectNodes(\r
-                                               response.getContent(),\r
-                                               "slc:object-list/slc:execution-module-descriptor");\r
-                               var mods = {};\r
-                               for (var i = 0; i < descriptors.length; i++) {\r
-                                       var name = org.argeo.ria.util.Element.getSingleNodeText(\r
-                                                       descriptors[i], "slc:name");\r
-                                       var version = org.argeo.ria.util.Element.getSingleNodeText(\r
-                                                       descriptors[i], "slc:version");\r
-                                       if (!mods[name])\r
-                                               mods[name] = [];\r
-                                       mods[name].push(version);\r
-                               }\r
-                               var flowLoader = org.argeo.slc.ria.FlowsSelectorView.flowLoader;\r
-                               for (var key in mods) {\r
-                                       for (var i = 0; i < mods[key].length; i++) {\r
-                                               var versionFolder = new org.argeo.ria.components.DynamicTreeFolder(\r
-                                                               key + ' (' + mods[key][i] + ')', flowLoader,\r
-                                                               "Loading Flows", folder.getDragData());\r
-                                               versionFolder.setUserData("moduleData", {\r
-                                                                       name : key,\r
-                                                                       version : mods[key][i]\r
-                                                               });\r
-                                               versionFolder.setUserData("agentUuid", agentId);\r
-                                               // Warning, we must add it AFTER setting the user data, \r
-                                               // because of the persistent loading mechanism.\r
-                                               folder.add(versionFolder);\r
-                                       }\r
-                               }\r
-                               folder.setLoaded(true);\r
-                               folder.getTree().fireEvent("changeSelection");\r
-                       });\r
-                       req.addListener("failed", function(response) {\r
-                               folder.setLoaded(true);\r
-                       });\r
-                       req.send();\r
-               },\r
-\r
-               /**\r
-                * Loader for the "flow" level : takes a folder containing "moduleData"\r
-                * and create its children.\r
-                * \r
-                * @param folder\r
-                *            {org.argeo.ria.components.PersistentTreeFolder} A Tree folder containing in the\r
-                *            key "moduleData" of its user data a map containing the\r
-                *            keys {name,version}\r
-                */\r
-               flowLoader : function(folder) {\r
-                       var moduleData = folder.getUserData("moduleData");\r
-                       var agentUuid = folder.getUserData("agentUuid");\r
-\r
-                       var req = org.argeo.slc.ria.SlcApi\r
-                                       .getLoadExecutionDescriptorService(agentUuid,\r
-                                                       moduleData.name, moduleData.version);\r
-                       req.addListener("completed", function(response) {\r
-                               var executionModule = new org.argeo.slc.ria.execution.Module();\r
-                               try {\r
-                                       executionModule.setXmlNode(response.getContent());\r
-                               } catch (e) {\r
-                                       this.error(e);\r
-                               }\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
-                                       file.setUserData("executionModule",     executionModule);\r
-                                       file.setUserData("executionFlow", execFlows[key]);\r
-                                       file.setUserData("agentUuid", agentUuid);\r
-                                       org.argeo.slc.ria.FlowsSelectorView.attachNodeByPath(folder, path, file, {\r
-                                               agentUuid : folder.getUserData("agentUuid")\r
-                                       });\r
-                                       folder.appendDragData(file);\r
-                               }\r
-                               folder.setLoaded(true);\r
-                               folder.getTree().fireEvent("changeSelection");\r
-                       });\r
-                       req.addListener("failed", function(response) {\r
-                               folder.setLoaded(true);\r
-                       });\r
-                       req.send();\r
-               }               \r
-       },\r
-\r
-       members : {\r
-               \r
-               /**\r
-                * \r
-                */\r
-               load : function() {\r
-                       this._createLayout();\r
-                       this.UIBus.addListener("agentRegistered", this._addAgentHandler, this);\r
-                       this.UIBus.addListener("agentUnregistered", this._removeAgentHandler,   this);\r
-               },              \r
-\r
-               /**\r
-                * Creates the main applet layout.\r
-                */\r
-               _createLayout : function() {\r
-\r
-                       this.tree = new qx.ui.tree.Tree();\r
-                       this.tree.setDecorator(null);\r
-                       this.tree.setSelectionMode("multi");\r
-\r
-                       this.rootNode = new org.argeo.ria.components.DynamicTreeFolder(\r
-                                       "Tests", this.self(arguments).agentLoader,\r
-                                       "Loading Agents");\r
-                       this.tree.setRoot(this.rootNode);\r
-                       this.rootNode.setPersistentTreeID("org.argeo.slc.ria.monitor.FlowsSelector")\r
-                       this.rootNode.setOpen(true);\r
-                       this.tree.setContextMenu(org.argeo.ria.event.CommandsManager\r
-                                       .getInstance().createMenuFromIds(["reloadtree"]));\r
-\r
-                       this.tree.addListener("changeSelection", function(e) {\r
-                               var viewSelection = this.getViewSelection();\r
-                               viewSelection.setViewId("form:tree");\r
-                               viewSelection.clear();\r
-                               var sel = this.tree.getSortedSelection();\r
-                               for (var i = 0; i < sel.length; i++) {\r
-                                       viewSelection.addNode(sel[i]);\r
-                               }\r
-                               if(sel && sel[0]){\r
-                                       var propViewPane = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("properties");\r
-                                       propViewPane.getContent().updateData(sel[0]);\r
-                               }\r
-                       }, this);\r
-\r
-\r
-                       this.add(this.tree);\r
-               }               \r
-       }\r
-});
\ No newline at end of file
diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/UploadView.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/monitor/UploadView.js
new file mode 100644 (file)
index 0000000..f54ba16
--- /dev/null
@@ -0,0 +1,66 @@
+qx.Class.define("org.argeo.slc.ria.monitor.UploadView", {\r
+       extend : qx.ui.container.Composite,\r
+       implement : [org.argeo.ria.components.IView], \r
+       \r
+       properties : {\r
+               /**\r
+                * The commands definition Map that will be automatically added and wired to the menubar and toolbar.\r
+                * See {@link org.argeo.ria.event.CommandsManager#definitions} for the keys to use for defining commands.\r
+                */\r
+               commands : {\r
+                       init : {}\r
+               },\r
+               viewSelection : {\r
+                       nullable:false, \r
+                       check:"org.argeo.ria.components.ViewSelection"\r
+               },\r
+               view : {\r
+                       init : null\r
+               },                      \r
+               instanceId : {init:""},\r
+               instanceLabel : {init:""}\r
+       },\r
+\r
+       construct : function(){\r
+               this.base(arguments);\r
+               this.setLayout(new qx.ui.layout.Dock());        \r
+       },      \r
+       \r
+       members : {\r
+               /**\r
+                * The implementation should contain the GUI initialisation.\r
+                * This is the role of the manager to actually add the graphical component to the pane, \r
+                * so it's not necessary to do it here. \r
+                * @param viewPane {org.argeo.ria.components.ViewPane} The pane manager\r
+                * @param data {Mixed} Any object or data passed by the initiator of the view\r
+                * @return {Boolean}\r
+                */\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("Upoad");\r
+                       this.add(this.label, {edge : "center"});\r
+               },\r
+               /**\r
+                * The implementation should contain the real data loading (i.o. query...)\r
+                * @return {Boolean}\r
+                */\r
+               load : function(){\r
+                       \r
+               },\r
+               \r
+               updateData : function(node){\r
+                       this.label.setContent("Properties for : " + node.getLabel());\r
+               },\r
+               /**\r
+                * Whether this component is already contained in a scroller (return false) or not (return true).\r
+                * @return {Boolean}\r
+                */\r
+               addScroll : function(){return true;},\r
+               /**\r
+                * Called at destruction time\r
+                * Perform all the clean operations (stopping polling queries, etc.) \r
+                */\r
+               close : function(){return true;}\r
+       }\r
+});
\ No newline at end of file