--- /dev/null
+/* ************************************************************************\r
+\r
+ Copyright: 2008 Argeo\r
+\r
+ License: \r
+\r
+ Authors: Charles du Jeu\r
+\r
+************************************************************************ */\r
+qx.Class.define("org.argeo.ria.components.Logger",\r
+{\r
+ type : "singleton",\r
+ extend : qx.ui.window.Window,\r
+ \r
+ construct : function(){\r
+ this.base(arguments, "Logs", "resource/slc/help-contents.png");\r
+ this.set({\r
+ showMaximize : true,\r
+ showMinimize : false,\r
+ width: 550,\r
+ height: 300\r
+ });\r
+ this.setLayout(new qx.ui.layout.Dock(0,5));\r
+ var buttonPane = new qx.ui.container.Composite(new qx.ui.layout.Canvas());\r
+ var closeButton = new qx.ui.form.Button("Close"); \r
+ closeButton.addListener("execute", function(e){\r
+ this.hide(); \r
+ }, this);\r
+ buttonPane.add(closeButton, {width:'20%',left:'40%'});\r
+ this.add(buttonPane, {edge:'south'});\r
+ this.setModal(false);\r
+ \r
+ var layout = new qx.ui.layout.VBox(2); \r
+ this._logPane = new qx.ui.container.Composite(layout);\r
+ var deco = new qx.ui.decoration.Single(1, 'solid', '#000000');\r
+ deco.setBackgroundColor("#ffffff")\r
+ var scroller = new qx.ui.container.Scroll(this._logPane);\r
+ scroller.setDecorator(deco);\r
+ this.add(scroller, {edge:'center', width:'100%', height:'100%'});\r
+ // Build style sheet content\r
+ var style =\r
+ [\r
+ '.messages{font-size:0.9em}',\r
+ '.messages div{padding:0px 4px;}',\r
+ '.messages .offset{font-weight:bold;}',\r
+ '.messages .object{font-style:italic;}',\r
+ \r
+ '.messages .user-command{color:blue}',\r
+ '.messages .user-result{background:white}',\r
+ '.messages .user-error{background:#FFE2D5}',\r
+ '.messages .level-debug{background:white}',\r
+ '.messages .level-info{background:#DEEDFA}',\r
+ '.messages .level-warn{background:#FFF7D5}',\r
+ '.messages .level-error{background:#FFE2D5}',\r
+ '.messages .level-user{background:#E3EFE9}',\r
+ '.messages .type-string{color:black;font-weight:normal;}',\r
+ '.messages .type-number{color:#155791;font-weight:normal;}',\r
+ '.messages .type-boolean{color:#15BC91;font-weight:normal;}',\r
+ '.messages .type-array{color:#CC3E8A;font-weight:bold;}',\r
+ '.messages .type-map{color:#CC3E8A;font-weight:bold;}',\r
+ '.messages .type-key{color:#565656;font-style:italic}',\r
+ '.messages .type-class{color:#5F3E8A;font-weight:bold}',\r
+ '.messages .type-instance{color:#565656;font-weight:bold}',\r
+ '.messages .type-stringify{color:#565656;font-weight:bold}'\r
+ ]; \r
+ // Include stylesheet\r
+ qx.bom.Stylesheet.createElement(style.join(""));\r
+ \r
+ },\r
+ \r
+ members : {\r
+ process : function(entry){\r
+ var wrapper = qx.log.appender.Util.toHtml(entry);\r
+ var label = new qx.ui.basic.Label('<div class="messages"><div class="'+wrapper.className+'">'+wrapper.innerHTML+'</div></div>');\r
+ label.setRich(true);\r
+ if(entry.level == "error"){\r
+ var alert = new org.argeo.ria.components.Modal("Error");\r
+ alert.addContent(label.clone()); \r
+ alert.attachAndShow();\r
+ }\r
+ this._logPane.addAt(label, 0);\r
+ },\r
+ toggle : function(){\r
+ this.show();\r
+ this.center();\r
+ }\r
+ },\r
+\r
+ destruct : function()\r
+ {\r
+ qx.log.Logger.unregister(this);\r
+ }\r
+ \r
+});\r