diff examples/remotePager.ur @ 16:2e397d373289

Add RemotePager.
author Karn Kallio <kkallio@eka>
date Thu, 18 Aug 2011 12:53:17 -0430
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/remotePager.ur	Thu Aug 18 12:53:17 2011 -0430
@@ -0,0 +1,30 @@
+fun getPage pg =
+    return {Content = <xml><h2>This is page {[pg]}.</h2></xml>,
+            Available = 44}
+
+structure Pager = RemotePager.Make(struct
+                                       type errorMarker = {}
+                                       type pageGroup = {}
+                                       val initPage = fn _ => getPage 0
+                                       val getPage = fn _ pg =>
+                                                        tm <- now;
+                                                        if mod (toSeconds tm) 5 = 0 then
+                                                            return (RemotePager.Bad ())
+                                                        else
+                                                            p <- getPage pg;
+                                                            return (RemotePager.Good p)
+                                   end)
+
+fun main () =
+
+    pager <- Pager.create ();
+
+    return
+    <xml>
+      <head><title>RemotePager Example</title></head>
+      <body onload={Pager.onError pager (fn _ => alert "bad found")}>
+        <h1>RemotePager Example</h1>
+        <div>{Pager.panelXml pager}</div>
+        <div>{Pager.ctlXml pager}</div>
+      </body>
+    </xml>