3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4 <title>qooxdoo » Demo</title>
5 <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
7 <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
9 <script type="text/javascript" src="../../script/qx.js"></script>
10 <script type="text/javascript" src=".qxrpc"></script>
11 <!-- With the above script, the service URL for a J2EE application can be
12 automatically determined, no matter on what path it's deployed. -->
15 <script type="text/javascript" src="../../script/layout.js"></script>
17 <div id="demoDescription">
18 <p><strong>Only works together with a RPC backend!</strong></p>
19 <p>Test for RPC functionality.</p>
21 This test calls remote function getParams(), passing a defined field in
22 an object, and an undefined field in an object. Depending on the
23 setting of qx.core.Settings.jsonEncodeUndefined, the undefined field
24 should or should not be sent. We also send some (ignored) server data
25 in this test, if requested.
29 <script type="text/javascript">
30 // qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
31 qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
33 qx.core.Init.getInstance().defineMain(function() {
34 var layout1 = new qx.ui.layout.VerticalBoxLayout();
37 layout1.setSpacing(4);
39 var encodeUndefined = new qx.ui.form.CheckBox("Encode 'undefined' as null");
40 layout1.add(encodeUndefined);
42 var sendServerData = new qx.ui.form.CheckBox("Send server data");
43 layout1.add(sendServerData);
45 layout1.add(new qx.ui.basic.Label("URL:"));
46 var defaultURL = qx.io.remote.Rpc.makeServerURL();
47 if (defaultURL == null) {
48 defaultURL = "/services/";
50 var url = new qx.ui.form.TextField(defaultURL);
53 layout1.add(new qx.ui.basic.Label("Service:"));
54 var service = new qx.ui.form.TextField("qooxdoo.test");
57 var start = new qx.ui.form.Button("Start test");
60 // We'll be setting url and service upon execute; no need to do it now.
61 var rpc = new qx.io.remote.Rpc();
62 rpc.setTimeout(10000);
65 start.addEventListener("execute", function() {
66 // Allow the user to reset the URL and Service on each call
67 rpc.setUrl(url.getValue());
68 rpc.setServiceName(service.getValue());
69 rpc.setCrossDomain(false);
71 if (sendServerData.isChecked()) {
72 rpc.setServerData(new Date());
74 rpc.setServerData(undefined);
77 qx.Settings.setCustomOfClass("qx.io.Json", "encodeUndefined",
78 encodeUndefined.isChecked());
83 var result = rpc.callSync("getParams", obj.undef, obj.def);
84 alert("Sync result: " + result);
86 alert("Sync exception: " + ex);
90 var d = qx.ui.core.ClientDocument.getInstance();