]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/components/Logger.js
Huge refactoring
[gpl/argeo-slc.git] / org.argeo.slc.webapp / src / main / webapp / source / class / org / argeo / slc / web / components / Logger.js
1 /* ************************************************************************
2
3 Copyright: 2008 Argeo
4
5 License:
6
7 Authors: Charles du Jeu
8
9 ************************************************************************ */
10 qx.Class.define("org.argeo.slc.web.components.Logger",
11 {
12 type : "singleton",
13 extend : qx.ui.window.Window,
14
15 construct : function(){
16 this.base(arguments, "Logs", "resource/slc/help-contents.png");
17 this.set({
18 showMaximize : true,
19 showMinimize : false,
20 width: 550,
21 height: 300
22 });
23 this.setLayout(new qx.ui.layout.Dock(0,5));
24 var buttonPane = new qx.ui.container.Composite(new qx.ui.layout.Canvas());
25 var closeButton = new qx.ui.form.Button("Close");
26 closeButton.addListener("execute", function(e){
27 this.hide();
28 }, this);
29 buttonPane.add(closeButton, {width:'20%',left:'40%'});
30 this.add(buttonPane, {edge:'south'});
31 this.setModal(false);
32
33 var layout = new qx.ui.layout.VBox(2);
34 this._logPane = new qx.ui.container.Composite(layout);
35 var deco = new qx.ui.decoration.Single(1, 'solid', '#000000');
36 deco.setBackgroundColor("#ffffff")
37 var scroller = new qx.ui.container.Scroll(this._logPane);
38 scroller.setDecorator(deco);
39 this.add(scroller, {edge:'center', width:'100%', height:'100%'});
40 // Build style sheet content
41 var style =
42 [
43 '.messages{font-size:0.9em}',
44 '.messages div{padding:0px 4px;}',
45 '.messages .offset{font-weight:bold;}',
46 '.messages .object{font-style:italic;}',
47
48 '.messages .user-command{color:blue}',
49 '.messages .user-result{background:white}',
50 '.messages .user-error{background:#FFE2D5}',
51 '.messages .level-debug{background:white}',
52 '.messages .level-info{background:#DEEDFA}',
53 '.messages .level-warn{background:#FFF7D5}',
54 '.messages .level-error{background:#FFE2D5}',
55 '.messages .level-user{background:#E3EFE9}',
56 '.messages .type-string{color:black;font-weight:normal;}',
57 '.messages .type-number{color:#155791;font-weight:normal;}',
58 '.messages .type-boolean{color:#15BC91;font-weight:normal;}',
59 '.messages .type-array{color:#CC3E8A;font-weight:bold;}',
60 '.messages .type-map{color:#CC3E8A;font-weight:bold;}',
61 '.messages .type-key{color:#565656;font-style:italic}',
62 '.messages .type-class{color:#5F3E8A;font-weight:bold}',
63 '.messages .type-instance{color:#565656;font-weight:bold}',
64 '.messages .type-stringify{color:#565656;font-weight:bold}'
65 ];
66 // Include stylesheet
67 qx.bom.Stylesheet.createElement(style.join(""));
68
69 },
70
71 members : {
72 process : function(entry){
73 var wrapper = qx.log.appender.Util.toHtml(entry);
74 var label = new qx.ui.basic.Label('<div class="messages"><div class="'+wrapper.className+'">'+wrapper.innerHTML+'</div></div>');
75 label.setRich(true);
76 if(entry.level == "error"){
77 var alert = new org.argeo.slc.web.components.Modal("Error");
78 alert.addContent(label.clone());
79 alert.attachAndShow();
80 }
81 this._logPane.addAt(label, 0);
82 },
83 toggle : function(){
84 this.show();
85 this.center();
86 }
87 },
88
89 destruct : function()
90 {
91 qx.log.Logger.unregister(this);
92 }
93
94 });