diff demo/more/conferenceFields.ur @ 1011:16f7cb0891b6

Initial support for char in SQL
author Adam Chlipala <adamc@hcoop.net>
date Thu, 22 Oct 2009 16:15:56 -0400
parents 59097824f19b
children 53a22f46f377
line wrap: on
line diff
--- a/demo/more/conferenceFields.ur	Thu Oct 22 14:05:48 2009 -0400
+++ b/demo/more/conferenceFields.ur	Thu Oct 22 16:15:56 2009 -0400
@@ -2,3 +2,22 @@
 
 val title = string "Title"
 val abstract = textarea "Abstract"
+
+fun charIn s =
+    if String.length s = 0 then
+        error <xml>Impossible: Empty option value</xml>
+    else
+        String.sub s 0
+
+con dropdown = (char, string)
+fun dropdown name opts = {Nam = name,
+                          Show = txt,
+                          Widget = fn [nm :: Name] => <xml><select{nm}>
+                            {List.mapX (fn x => <xml><option>{[x]}</option></xml>) opts}
+                          </select></xml>,
+                          WidgetPopulated = fn [nm :: Name] v => <xml><select{nm}>
+                            {List.mapX (fn x => <xml><option selected={x = v}>{[x]}</option></xml>) opts}
+                          </select></xml>,
+                          Parse = charIn,
+                          Inject = _}
+