r9143: print out the rate of rounttrips
[jra/samba/.git] / swat / esptest / qooxdoo.esp
1 <% 
2   page_header("columns", "ESP qooxdoo test", "esptest"); 
3
4   libinclude("encoder.js");
5
6   var thispage = request.REQUEST_URI;
7 %>
8
9 <script type="text/javascript" src="/scripting/client/encoder.js"></script>
10 <script type="text/javascript" src="/scripting/client/call.js"></script>
11
12 <h1>Samba4 qooxdoo test</h1>
13
14   <script type="text/javascript">
15
16   window.application.main = function()
17   {
18     var inlineWidget = new QxInline;
19     var fieldSet = new QxFieldSet("thefieldset");
20
21     with(fieldSet)
22     {
23             setWidth("40%");
24             setMinHeight(400);
25             setBottom(48);
26             setMinWidth(500);
27     };
28
29     var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%");
30     gl.setEdge(0);
31     gl.setCellPaddingTop(3);
32     gl.setCellPaddingBottom(3);
33
34     inlineWidget.add(fieldSet);
35
36     var d = this.getClientWindow().getDocument();
37
38     function myCheckBox(label, name, value) {
39             var w = new QxCheckBox(label, value, name, value);
40             w.setWidth("100%");
41             return w;
42     }
43
44     function myTextField(name, value) {
45             var w = new QxTextField(value);
46             return w;
47     }
48
49     var stopit = 0;
50     var shared = new Object();
51
52     function callback(o) {
53             shared = o;
54             var r = "Response:\\n";
55             for (var i in shared) {
56                     r = r + "\\t" + i + " : " + shared[i] + "\\n";
57             }
58             ta.setText(r);
59             if (shared.start_time == 0) {
60                     shared.start_time = shared.nttime;
61             }
62             shared.time_diff = shared.nttime - shared.start_time;
63             shared.rate = shared.counter / (shared.time_diff * 0.0000001);
64             shared.counter++;
65             if (stopit == 0) {
66                     server_call('remote.esp', 'testfunc', callback, shared);
67             }
68     }
69
70     function start_call() { 
71             server_call('remote.esp', 'printf', null, 
72                         "Starting calls ... (stopit=%d)\\n", stopit);
73             stopit = 0;
74             shared.counter = 0;
75             shared.start_time = 0;
76             server_call('remote.esp', 'testfunc', callback, shared);
77     };
78
79     function stop_call() { 
80             server_call('remote.esp', 'printf', null, "Stopping calls\\n");
81             stopit = 1;
82     };
83
84     function myButton(name, label, call) {
85         var b = new QxButton(label);
86         b.setWidth("25%");
87         b.setVerticalAlign("top");
88         b.name = name;
89         b.addEventListener("click", call);
90         return b;
91     };
92
93     var c1 = myCheckBox("Enable The Server", 'checkbox1', false);
94     var c2 = myCheckBox("Another Server", 'checkbox2', true);
95     var t3 = myTextField("mytext", "hello");
96     var b1 = myButton("send", "Make Call", start_call);
97     var b2 = myButton("stop", "Stop Call", stop_call);
98     var ta = new QxTextArea;
99     ta.setText("initial text");
100     ta.setWidth("80%");
101     ta.setHeight(150);
102     ta.setVerticalAlign("top");
103
104     gl.add(c1, { row : 1, col : 1 });
105     gl.add(c2, { row : 2, col : 1 });
106     gl.add(t3, { row : 3, col : 1, scaleHorizontal: true });
107     gl.add(b1, { row : 4, col : 1 });
108     gl.add(ta, { row : 5, col : 1 });
109     gl.add(b2, { row : 6, col : 1 });
110
111     fieldSet.add(gl);
112
113     inlineWidget.add(fieldSet);
114
115     d.add(inlineWidget, "canvas");
116   };
117
118   </script>
119
120
121  <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>
122
123 <% page_footer(); %>