<?xml version="1.0"?>
<h:html xmlns="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:jr="http://openrosa.org/javarosa" xmlns:odk="http://www.opendatakit.org/xforms" xmlns:orx="http://openrosa.org/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<h:head>
<h:title>widgets</h:title>
<model odk:xforms-version="1.0.0">
<itext>
<translation default="true()" lang="default">
<text id="a_b-0">
<value>a</value>
<value form="image">jr://images/a.jpg</value>
</text>
<text id="a_b-1">
<value>b</value>
<value form="image">jr://images/b.jpg</value>
</text>
<text id="happy_sad-0">
<value form="image">jr://images/happy.jpg</value>
</text>
<text id="happy_sad-1">
<value form="image">jr://images/sad.jpg</value>
</text>
</translation>
</itext>
<instance>
<data id="widgets">
<my_string/>
<my_int/>
<my_decimal>18.31</my_decimal>
<my_date>2010-06-15</my_date>
<my_time/>
<my_select>a c</my_select>
<my_select1>8</my_select1>
<my_trigger/>
<my_output/>
<my_geopoint/>
<my_barcode/>
<my_image/>
<my_audio/>
<my_video/>
<numberAsString/>
<locationMap/>
<dateTime/>
<spinner/>
<spinner_all/>
<selectadvance/>
<grid_test/>
<grid_test_audio/>
<table_list_test>
<table_list_test_label/>
<table_list_1/>
<table_list_2/>
</table_list_test>
<table_list_test2>
<generated_table_list_label_29/>
<reserved_name_for_field_list_labels_30/>
<table_list_3/>
<table_list_4/>
</table_list_test2>
<happy_sad_table_2>
<happy_sad_second_method/>
<happy_sad_brian2/>
<happy_sad_michael2/>
</happy_sad_table_2>
<happy_sad_table>
<generated_table_list_label_38/>
<reserved_name_for_field_list_labels_39/>
<happy_sad_brian/>
<happy_sad_michael/>
</happy_sad_table>
<meta>
<instanceID/>
</meta>
</data>
</instance>
<instance id="list">
<root>
<item>
<name>a</name>
<label>option a</label>
</item>
<item>
<name>b</name>
<label>option b</label>
</item>
<item>
<name>c</name>
<label>option c</label>
</item>
<item>
<name>d</name>
<label>option d</label>
</item>
</root>
</instance>
<instance id="list2">
<root>
<item>
<name>1</name>
<label>option 1</label>
</item>
<item>
<name>2</name>
<label>option 2</label>
</item>
<item>
<name>3</name>
<label>option 3</label>
</item>
<item>
<name>4</name>
<label>option 4</label>
</item>
<item>
<name>5</name>
<label>option 5</label>
</item>
<item>
<name>6</name>
<label>option 6</label>
</item>
<item>
<name>7</name>
<label>option 7</label>
</item>
<item>
<name>8</name>
<label>option 8</label>
</item>
</root>
</instance>
<instance id="yes_no">
<root>
<item>
<name>yes</name>
<label>Yes</label>
</item>
<item>
<name>no</name>
<label>No</label>
</item>
</root>
</instance>
<instance id="a_b">
<root>
<item>
<itextId>a_b-0</itextId>
<name>a</name>
</item>
<item>
<itextId>a_b-1</itextId>
<name>b</name>
</item>
</root>
</instance>
<instance id="happy_sad">
<root>
<item>
<itextId>happy_sad-0</itextId>
<name>happy</name>
</item>
<item>
<itextId>happy_sad-1</itextId>
<name>sad</name>
</item>
</root>
</instance>
<bind nodeset="/data/my_string" type="string"/>
<bind constraint=". < 10" jr:constraintMsg="number must be less than 10" nodeset="/data/my_int" type="int"/>
<bind constraint=". > 10.51 and . < 18.39" jr:constraintMsg="number must be between 10.51 and 18.39" nodeset="/data/my_decimal" type="decimal"/>
<bind constraint=". >= today()" jr:constraintMsg="only future dates allowed" nodeset="/data/my_date" type="date"/>
<bind nodeset="/data/my_time" type="time"/>
<bind constraint="not(selected(., 'c') and selected(., 'd'))" jr:constraintMsg="option c and d cannot be selected together" nodeset="/data/my_select" type="string"/>
<bind nodeset="/data/my_select1" type="string"/>
<bind nodeset="/data/my_output" readonly="true()" type="string"/>
<bind nodeset="/data/my_geopoint" type="geopoint"/>
<bind nodeset="/data/my_barcode" type="barcode"/>
<bind nodeset="/data/my_image" type="binary"/>
<bind nodeset="/data/my_audio" type="binary"/>
<bind nodeset="/data/my_video" type="binary"/>
<bind nodeset="/data/numberAsString" type="string"/>
<bind nodeset="/data/locationMap" type="geopoint"/>
<bind nodeset="/data/dateTime" type="dateTime"/>
<bind nodeset="/data/spinner" type="string"/>
<bind nodeset="/data/spinner_all" type="string"/>
<bind nodeset="/data/selectadvance" type="string"/>
<bind nodeset="/data/grid_test" type="string"/>
<bind nodeset="/data/grid_test_audio" type="string"/>
<bind nodeset="/data/table_list_test/table_list_test_label" type="string"/>
<bind nodeset="/data/table_list_test/table_list_1" type="string"/>
<bind nodeset="/data/table_list_test/table_list_2" type="string"/>
<bind nodeset="/data/table_list_test2/generated_table_list_label_29" readonly="true()" type="string"/>
<bind nodeset="/data/table_list_test2/reserved_name_for_field_list_labels_30" type="string"/>
<bind nodeset="/data/table_list_test2/table_list_3" type="string"/>
<bind nodeset="/data/table_list_test2/table_list_4" type="string"/>
<bind nodeset="/data/happy_sad_table_2/happy_sad_second_method" type="string"/>
<bind nodeset="/data/happy_sad_table_2/happy_sad_brian2" type="string"/>
<bind nodeset="/data/happy_sad_table_2/happy_sad_michael2" type="string"/>
<bind nodeset="/data/happy_sad_table/generated_table_list_label_38" readonly="true()" type="string"/>
<bind nodeset="/data/happy_sad_table/reserved_name_for_field_list_labels_39" type="string"/>
<bind nodeset="/data/happy_sad_table/happy_sad_brian" type="string"/>
<bind nodeset="/data/happy_sad_table/happy_sad_michael" type="string"/>
<bind jr:preload="uid" nodeset="/data/meta/instanceID" readonly="true()" type="string"/>
</model>
</h:head>
<h:body>
<input ref="/data/my_string">
<label>string widget</label>
<hint>can be short or very long</hint>
</input>
<input ref="/data/my_int">
<label>integer widget</label>
<hint>try entering a number < 10</hint>
</input>
<input ref="/data/my_decimal">
<label>decimal widget</label>
<hint>only numbers > 10.51 and < 18.39</hint>
</input>
<input ref="/data/my_date">
<label>date widget</label>
<hint>only future dates allowed</hint>
</input>
<input ref="/data/my_time">
<label>time widget</label>
<hint>testing time</hint>
</input>
<select ref="/data/my_select">
<label>select multiple widget</label>
<hint>don't pick c and d together</hint>
<itemset nodeset="instance('list')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select>
<select1 ref="/data/my_select1">
<label>select one widget</label>
<hint>scroll down to see default selection</hint>
<itemset nodeset="instance('list2')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
<trigger ref="/data/my_trigger">
<label>acknowledge widget</label>
<hint>need to push button</hint>
</trigger>
<input ref="/data/my_output">
<label> review widget. is your email still <output value=" /data/my_trigger "/>? </label>
<hint>long hint: there is an upcoming section.</hint>
</input>
<input ref="/data/my_geopoint">
<label>geopoint widget</label>
<hint>this will get gps location</hint>
</input>
<input ref="/data/my_barcode">
<label>barcode widget</label>
<hint>scans multi-format 1d/2d barcodes</hint>
</input>
<upload mediatype="image/*" ref="/data/my_image">
<label>image widget</label>
<hint>this will launch the camera</hint>
</upload>
<upload mediatype="audio/*" ref="/data/my_audio">
<label>audio widget</label>
<hint>this will launch the audio recorder</hint>
</upload>
<upload mediatype="video/*" ref="/data/my_video">
<label>video widget</label>
<hint>this will launch the video recorder</hint>
</upload>
<input appearance="numbers" ref="/data/numberAsString">
<label>String field that uses only numbers (plus a couple extra)</label>
<hint>Takes 0-9, -, +, ., space, and comma</hint>
</input>
<input appearance="maps" ref="/data/locationMap">
<label>Geopoint with map Widget</label>
<hint>Note: this uses DATA and requires a connection</hint>
</input>
<input ref="/data/dateTime">
<label>Date and Time Widget</label>
</input>
<select1 appearance="minimal" ref="/data/spinner">
<label>Spinner Widget: Select 1</label>
<itemset nodeset="instance('list')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
<select appearance="minimal" ref="/data/spinner_all">
<label>Spinner Widget: Select All</label>
<itemset nodeset="instance('list')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select>
<select1 appearance="quick" ref="/data/selectadvance">
<label>Select Widget - Auto Advance</label>
<itemset nodeset="instance('list')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
<select1 appearance="compact" ref="/data/grid_test">
<label>Grid test</label>
<hint>make sure to put a.jpg and b.jpg in the form-media folder</hint>
<itemset nodeset="instance('a_b')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select1>
<select1 appearance="quickcompact" ref="/data/grid_test_audio">
<label>Grid auto-advance test</label>
<hint>make sure to put a.jpg and b.jpg in the form-media folder</hint>
<itemset nodeset="instance('a_b')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select1>
<group appearance="field-list" ref="/data/table_list_test">
<label>List Group</label>
<select1 appearance="label" ref="/data/table_list_test/table_list_test_label">
<label>Labeled Choices</label>
<itemset nodeset="instance('yes_no')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
<select1 appearance="list-nolabel" ref="/data/table_list_test/table_list_1">
<label>Q1</label>
<itemset nodeset="instance('yes_no')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
<select1 appearance="list-nolabel" ref="/data/table_list_test/table_list_2">
<label>Question 2</label>
<itemset nodeset="instance('yes_no')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
</group>
<group appearance="field-list" ref="/data/table_list_test2">
<input ref="/data/table_list_test2/generated_table_list_label_29">
<label>(An easier to specify list group)</label>
</input>
<select1 appearance="label" ref="/data/table_list_test2/reserved_name_for_field_list_labels_30">
<label></label>
<itemset nodeset="instance('yes_no')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
<select1 appearance="list-nolabel" ref="/data/table_list_test2/table_list_3">
<label>Q1</label>
<itemset nodeset="instance('yes_no')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
<select1 appearance="list-nolabel" ref="/data/table_list_test2/table_list_4">
<label>Question 2</label>
<itemset nodeset="instance('yes_no')/root/item">
<value ref="name"/>
<label ref="label"/>
</itemset>
</select1>
</group>
<group appearance="field-list" ref="/data/happy_sad_table_2">
<label>Multi List Group</label>
<select appearance="label" ref="/data/happy_sad_table_2/happy_sad_second_method">
<label>Multi Choice List</label>
<itemset nodeset="instance('happy_sad')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select>
<select appearance="list-nolabel" ref="/data/happy_sad_table_2/happy_sad_brian2">
<label>Brian</label>
<itemset nodeset="instance('happy_sad')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select>
<select appearance="list-nolabel" ref="/data/happy_sad_table_2/happy_sad_michael2">
<label>Michael</label>
<itemset nodeset="instance('happy_sad')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select>
</group>
<group appearance="field-list" ref="/data/happy_sad_table">
<input ref="/data/happy_sad_table/generated_table_list_label_38">
<label>(An easier to specify multi list group)</label>
</input>
<select appearance="label" ref="/data/happy_sad_table/reserved_name_for_field_list_labels_39">
<label></label>
<itemset nodeset="instance('happy_sad')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select>
<select appearance="list-nolabel" ref="/data/happy_sad_table/happy_sad_brian">
<label>Brian</label>
<itemset nodeset="instance('happy_sad')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select>
<select appearance="list-nolabel" ref="/data/happy_sad_table/happy_sad_michael">
<label>Michael</label>
<itemset nodeset="instance('happy_sad')/root/item">
<value ref="name"/>
<label ref="jr:itext(itextId)"/>
</itemset>
</select>
</group>
</h:body>
</h:html>