Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / examples / direct / direct.js
diff --git a/examples/direct/direct.js b/examples/direct/direct.js
new file mode 100644 (file)
index 0000000..f3f77b4
--- /dev/null
@@ -0,0 +1,88 @@
+/*!
+ * Ext JS Library 3.0.0
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+Ext.onReady(function(){\r
+    Ext.Direct.addProvider(\r
+        Ext.app.REMOTING_API,\r
+        {\r
+            type:'polling',\r
+            url: 'php/poll.php'\r
+        }\r
+    );\r
+\r
+    var out = new Ext.form.DisplayField({\r
+        cls: 'x-form-text',\r
+        id: 'out'\r
+    });\r
+\r
+    var text = new Ext.form.TextField({\r
+        width: 300,\r
+        emptyText: 'Echo input'\r
+    });\r
+\r
+    var call = new Ext.Button({\r
+        text: 'Echo',\r
+        handler: function(){\r
+            TestAction.doEcho(text.getValue(), function(result, e){\r
+                var t = e.getTransaction();\r
+                out.append(String.format('<p><b>Successful call to {0}.{1} with response:</b><xmp>{2}</xmp></p>',\r
+                       t.action, t.method, Ext.encode(result)));\r
+                out.el.scroll('b', 100000, true);\r
+            });\r
+        }\r
+    });\r
+\r
+    var num = new Ext.form.TextField({\r
+        width: 80,\r
+        emptyText: 'Multiply x 8',\r
+        style:  'text-align:left;'\r
+    });\r
+\r
+    var multiply = new Ext.Button({\r
+        text: 'Multiply',\r
+        handler: function(){\r
+            TestAction.multiply(num.getValue(), function(result, e){\r
+                var t = e.getTransaction();\r
+                if(e.status){\r
+                    out.append(String.format('<p><b>Successful call to {0}.{1} with response:</b><xmp>{2}</xmp></p>',\r
+                        t.action, t.method, Ext.encode(result)));\r
+                }else{\r
+                    out.append(String.format('<p><b>Call to {0}.{1} failed with message:</b><xmp>{2}</xmp></p>',\r
+                        t.action, t.method, e.message));\r
+                }\r
+                out.el.scroll('b', 100000, true);\r
+            });\r
+        }\r
+    });\r
+\r
+    text.on('specialkey', function(t, e){\r
+        if(e.getKey() == e.ENTER){\r
+            call.handler();\r
+        }\r
+    });\r
+\r
+       num.on('specialkey', function(t, e){\r
+        if(e.getKey() == e.ENTER){\r
+            multiply.handler();\r
+        }\r
+    });\r
+\r
+       var p = new Ext.Panel({\r
+        title: 'Remote Call Log',\r
+        //frame:true,\r
+               width: 600,\r
+               height: 300,\r
+               layout:'fit',\r
+               \r
+               items: [out],\r
+        bbar: [text, call, '-', num, multiply]\r
+       }).render(Ext.getBody());\r
+\r
+    Ext.Direct.on('message', function(e){\r
+        out.append(String.format('<p><i>{0}</i></p>', e.data));\r
+                out.el.scroll('b', 100000, true);\r
+    });\r
+});\r