<html><body>
<p>There hasn't been any recent email on this list, but I wanted to make sure everyone was aware that IBM has a browser-based project where we are using a JSON version of OpenAjax Widgets as our primary format for widgets. We will send detailed spec proposals at some point and will submit code to the OpenAjax open source repository, but right now we are all busy with our day jobs.<br>
<br>
But to show what we have in mind, below is a sample widget where the JSON version of OAM wraps a Dojo button widget. Note that we still have some work to do with &lt;library&gt; and &lt;require&gt;. Our current code works now because Dojo/Dijit are installed at particular locations but we need to clean things up so that the OAM widgets are portable to other tools.<br>
<br>
Button_oam.json:<br>
<br>
<tt><font size="2">{</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">xmlns</font></u></tt><tt><font size="2">&quot;: &quot;<a href="http://openajax.org/metadata">http://openajax.org/metadata</a>&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">spec</font></u></tt><tt><font size="2">&quot;: &quot;1.0&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;version&quot;: &quot;1.0&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;name&quot;: &quot;dijit.form.Button&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;id&quot;: &quot;<a href="http://dojotoolkit.org/dijit/form/Button">http://dojotoolkit.org/dijit/form/Button</a>&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;jsClass&quot;: &quot;dijit.form.Button&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;property&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;type&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;string&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;option&quot;: [</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;value&quot;: &quot;button&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;value&quot;: &quot;submit&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;value&quot;: &quot;reset&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;defaultValue&quot;: &quot;button&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Type&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;name&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;string&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Name&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">alt</font></u></tt><tt><font size="2">&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;string&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;hidden&quot;: true</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;value&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;string&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Value&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;tabIndex&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;string&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;defaultValue&quot;: &quot;0&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Tab Index&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;disabled&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;boolean&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Disabled&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;readOnly&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;boolean&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;hidden&quot;: true</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;intermediateChanges&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;boolean&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;hidden&quot;: true</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;label&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;string&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Label&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;showLabel&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;boolean&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;defaultValue&quot;: true,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Show Label&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;iconClass&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;string&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;title&quot;: &quot;Icon Class&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &quot;scrollOnFocus&quot;: {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">datatype</font></u></tt><tt><font size="2">&quot;: &quot;boolean&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;description&quot;: &quot;On focus, should this widget scroll into view?&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;hidden&quot;: false,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;defaultValue&quot;: true</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; },</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;content&quot;: &quot;&lt;input type='button'&gt;&lt;/input&gt;&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &quot;require&quot;: [</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; {</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;type&quot;: &quot;</font></tt><tt><u><font size="2">javascript</font></u></tt><tt><font size="2">&quot;,</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;</font></tt><tt><u><font size="2">src</font></u></tt><tt><font size="2">&quot;: &quot;</font></tt><tt><u><font size="2">dijit</font></u></tt><tt><font size="2">/form/Button.js&quot;</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; &nbsp; &nbsp; }</font></tt><br>
<tt><font size="2">&nbsp; &nbsp; ]</font></tt><br>
<tt><font size="2">}</font></tt></body></html>