--- /dev/null
+/**\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