]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js
Move to src
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / slc / class / org / argeo / slc / ria / SlcExecLoggerApplet.js
diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js
new file mode 100644 (file)
index 0000000..7d64431
--- /dev/null
@@ -0,0 +1,131 @@
+/**\r
+ * A simple Hello World applet for documentation purpose. \r
+ * The only associated command is the "Close" command.\r
+ */\r
+qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",\r
+{\r
+  extend : qx.ui.container.Composite,\r
+  implement : [org.argeo.ria.components.IView], \r
+\r
+  construct : function(){\r
+       this.base(arguments);\r
+       this.setLayout(new qx.ui.layout.Dock());        \r
+  },\r
+\r
+  properties : \r
+  {\r
+       /**\r
+        * The viewPane inside which this applet is added. \r
+        */\r
+       view : {\r
+               init : null\r
+       },\r
+       viewSelection : {\r
+               nullable:false, \r
+               check:"org.argeo.ria.components.ViewSelection"\r
+       },  \r
+       instanceId : {init:""},\r
+       instanceLabel : {init:""},      \r
+       /**\r
+        * Commands definition, see {@link org.argeo.ria.event.CommandsManager#definitions} \r
+        */\r
+       commands : {\r
+               init : {\r
+                       "reloadlogs" : {\r
+                               label           : "Reload Logs", \r
+                               icon            : "resource/slc/view-refresh.png",\r
+                               shortcut        : "Control+r",\r
+                               enabled         : true,\r
+                               menu            : null,\r
+                               toolbar         : null,\r
+                               callback        : function(e){\r
+                                       this._reloadLogger();\r
+                               },\r
+                               command         : null\r
+                       }                       \r
+               }\r
+       }\r
+  },\r
+\r
+  members :\r
+  {\r
+       /**\r
+        * Called at applet creation. Just registers viewPane.\r
+        * @param viewPane {org.argeo.ria.components.ViewPane} The viewPane.\r
+        */\r
+       init : function(viewPane){\r
+               this.setView(viewPane);\r
+               this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId()));                \r
+               this._createLayout();\r
+       },\r
+       \r
+       /**\r
+        *  \r
+        */\r
+       load : function(){\r
+               this._reloadLogger();   \r
+               this.timer = new qx.event.Timer(15000);\r
+               this.timer.addListener("interval", this._reloadLogger, this);\r
+               this.timer.start();             \r
+       },\r
+        \r
+       addScroll : function(){\r
+               return false;\r
+       },\r
+       \r
+       close : function(){\r
+               this.timer.stop();\r
+       },\r
+               \r
+       /**\r
+        * Creates the applet layout\r
+        */\r
+       _createLayout : function(){\r
+               this.logModel = new qx.ui.table.model.Simple();\r
+               this.logModel.setColumns(["Date", "Host", "Id", "Status"]);\r
+               this.logPane = new qx.ui.table.Table(this.logModel,  {\r
+                       tableColumnModel: function(obj){\r
+                               return new qx.ui.table.columnmodel.Resize(obj)\r
+                       }\r
+               });\r
+               this.logPane.setDecorator(null);\r
+               this._initLogger();\r
+               this.add(this.logPane, {edge:'center'});\r
+       },\r
+       \r
+       /**\r
+        * Initialize the log table.\r
+        */\r
+       _initLogger : function(){\r
+               this.logPane.set({              \r
+                       statusBarVisible: false,\r
+                       showCellFocusIndicator:false\r
+               });\r
+               var columnModel = this.logPane.getTableColumnModel();\r
+               columnModel.getBehavior().setWidth(0, "30%");\r
+               columnModel.getBehavior().setWidth(1, "15%");\r
+               columnModel.getBehavior().setWidth(3, "12%");           \r
+       },\r
+       \r
+       /**\r
+        * Refresh the data model.\r
+        */\r
+       _reloadLogger : function(){\r
+               var request = org.argeo.slc.ria.SlcApi.getListSlcExecutionsService();\r
+               request.addListener("completed", function(response){                    \r
+                       var messages = org.argeo.ria.util.Element.selectNodes(response.getContent(), "//slc:slc-execution");\r
+                       this.logModel.setData([]);\r
+                       for(var i=0;i<messages.length;i++){\r
+                               var message = messages[i];\r
+                               var slcExec = new org.argeo.slc.ria.SlcExecutionMessage(message.getAttribute("uuid"));\r
+                               slcExec.fromXml(message);\r
+                               this.logModel.addRows([\r
+                                       [slcExec.getDate(), slcExec.getHost(), slcExec.getUuid(), slcExec.getStatus()]\r
+                               ]);                             \r
+                       }\r
+               }, this);\r
+               request.send();         \r
+       }\r
+               \r
+  }\r
+});
\ No newline at end of file