Upgrade to ExtJS 3.1.0 - Released 12/16/2009
[extjs.git] / examples / direct / direct.js
1 /*!
2  * Ext JS Library 3.1.0
3  * Copyright(c) 2006-2009 Ext JS, LLC
4  * licensing@extjs.com
5  * http://www.extjs.com/license
6  */
7 Ext.onReady(function(){\r
8     Ext.Direct.addProvider(\r
9         Ext.app.REMOTING_API,\r
10         {\r
11             type:'polling',\r
12             url: 'php/poll.php'\r
13         }\r
14     );\r
15 \r
16     var out = new Ext.form.DisplayField({\r
17         cls: 'x-form-text',\r
18         id: 'out'\r
19     });\r
20 \r
21     var text = new Ext.form.TextField({\r
22         width: 300,\r
23         emptyText: 'Echo input'\r
24     });\r
25 \r
26     var call = new Ext.Button({\r
27         text: 'Echo',\r
28         handler: function(){\r
29             TestAction.doEcho(text.getValue(), function(result, e){\r
30                 var t = e.getTransaction();\r
31                 out.append(String.format('<p><b>Successful call to {0}.{1} with response:</b><xmp>{2}</xmp></p>',\r
32                        t.action, t.method, Ext.encode(result)));\r
33                 out.el.scroll('b', 100000, true);\r
34             });\r
35         }\r
36     });\r
37 \r
38     var num = new Ext.form.TextField({\r
39         width: 80,\r
40         emptyText: 'Multiply x 8',\r
41         style:  'text-align:left;'\r
42     });\r
43 \r
44     var multiply = new Ext.Button({\r
45         text: 'Multiply',\r
46         handler: function(){\r
47             TestAction.multiply(num.getValue(), function(result, e){\r
48                 var t = e.getTransaction();\r
49                 if(e.status){\r
50                     out.append(String.format('<p><b>Successful call to {0}.{1} with response:</b><xmp>{2}</xmp></p>',\r
51                         t.action, t.method, Ext.encode(result)));\r
52                 }else{\r
53                     out.append(String.format('<p><b>Call to {0}.{1} failed with message:</b><xmp>{2}</xmp></p>',\r
54                         t.action, t.method, e.message));\r
55                 }\r
56                 out.el.scroll('b', 100000, true);\r
57             });\r
58         }\r
59     });\r
60 \r
61     text.on('specialkey', function(t, e){\r
62         if(e.getKey() == e.ENTER){\r
63             call.handler();\r
64         }\r
65     });\r
66 \r
67         num.on('specialkey', function(t, e){\r
68         if(e.getKey() == e.ENTER){\r
69             multiply.handler();\r
70         }\r
71     });\r
72 \r
73         var p = new Ext.Panel({\r
74         title: 'Remote Call Log',\r
75         //frame:true,\r
76                 width: 600,\r
77                 height: 300,\r
78                 layout:'fit',\r
79                 \r
80                 items: [out],\r
81         bbar: [text, call, '-', num, multiply]\r
82         }).render(Ext.getBody());\r
83 \r
84     Ext.Direct.on('message', function(e){\r
85         out.append(String.format('<p><i>{0}</i></p>', e.data));\r
86                 out.el.scroll('b', 100000, true);\r
87     });\r
88 });\r