<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><font size="4">Hi, <br>
</font></p>
<p>I have finished the first round of the package for GUI dialog
molding tool. It is a helper to build field Morph dialog and to
validate user input data. <br>
</p>
<p>In top of the UI-Mold package there a the test package
UI-Mold-Test.<br>
</p>
<p>Checkout at <a class="moz-txt-link-freetext"
href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-UI">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-UI</a></p>
<p>Example of field descriptions and inter-field validations:</p>
<img moz-do-not-send="false"
src="cid:part1.uCWtqS05.LV1uVcfX@free.fr" alt="Mold dialog"
class="" width="772" height="441">
<p>Smalltalk code to describe it:</p>
<div style="background: #f8f8f8;
overflow:auto;width:auto;border:solid gray;border-width:.1em .1em
.1em .8em;padding:.2em .6em;">
<pre style="margin: 0; line-height: 125%"> <span style="color: #666666">|</span><span style="color: #19177C"> mold fullname email confirmEmail </span><span style="color: #666666">|</span>
<span style="color: #19177C">mold</span> <span style="color: #666666">:=</span> <span style="color: #0000FF; font-weight: bold">Mold</span> <span style="color: #008000">new</span>.
<span style="color: #19177C">fullname</span> <span style="color: #666666">:=</span> <span style="color: #19177C">mold</span> <span style="color: #0000FF">stringField</span>
<span style="color: #0000FF">on:</span> <span style="color: #19177C">#propertyValue</span> <span style="color: #0000FF">of:</span> <span style="color: #0000FF; font-weight: bold">ValueHolder</span> <span style="color: #008000">new</span>;
<span style="color: #0000FF">label:</span> <span style="color: #BA2121">'Your Name'</span>;
<span style="color: #0000FF">beRequired</span>;
<span style="color: #0000FF">addCondition:</span> [ <span style="color: #666666">:</span><span style="color: #19177C">input</span> <span style="color: #666666">|</span> <span style="color: #19177C">input</span> <span style="color: #0000FF">includesSubString:</span> <span style="color: #BA2121">' '</span>]
<span style="color: #0000FF">labeled:</span>
[ <span style="color: #666666">:</span><span style="color: #19177C">wrong</span> <span style="color: #666666">|</span>
<span style="color: #BA2121">'Please enter your first and last name. I couldn''t find a space in {1}'</span> <span style="color: #0000FF">format:</span> {<span style="color: #19177C">wrong</span>} ].
<span style="color: #19177C">email</span> <span style="color: #666666">:=</span> <span style="color: #19177C">mold</span> <span style="color: #0000FF">emailField</span>
<span style="color: #0000FF">on:</span> <span style="color: #19177C">#propertyValue</span> <span style="color: #0000FF">of:</span> <span style="color: #0000FF; font-weight: bold">ValueHolder</span> <span style="color: #008000">new</span>;
<span style="color: #0000FF">label:</span> <span style="color: #BA2121">'Email Address:'</span>.
<span style="color: #19177C">confirmEmail</span> <span style="color: #666666">:=</span> <span style="color: #19177C">mold</span> <span style="color: #0000FF">emailField</span>
<span style="color: #0000FF">on:</span> <span style="color: #19177C">#propertyValue</span> <span style="color: #0000FF">of:</span> <span style="color: #0000FF; font-weight: bold">ValueHolder</span> <span style="color: #008000">new</span>;
<span style="color: #0000FF">label:</span> <span style="color: #BA2121">'Confirm Email:'</span>.
<span style="color: #19177C">email</span>
<span style="color: #0000FF">addCondition:</span> [ <span style="color: #666666">:</span><span style="color: #19177C">input</span> <span style="color: #666666">|</span> <span style="color: #19177C">input</span> <span style="color: #0000FF">=</span> <span style="color: #19177C">confirmEmail</span> <span style="color: #0000FF">input</span> ]
<span style="color: #0000FF">labeled:</span> <span style="color: #BA2121">'Email addresses did not match.'</span>.
<span style="color: #19177C">confirmEmail</span>
<span style="color: #0000FF">addCondition:</span> [ <span style="color: #666666">:</span><span style="color: #19177C">input</span> <span style="color: #666666">|</span> <span style="color: #19177C">input</span> <span style="color: #0000FF">=</span> <span style="color: #19177C">email</span> <span style="color: #0000FF">input</span> ]
<span style="color: #0000FF">labeled:</span> <span style="color: #BA2121">'Email addresses did not match.'</span>.
<span style="color: #19177C">mold</span> <span style="color: #0000FF">textField</span>
<span style="color: #0000FF">on:</span> <span style="color: #19177C">#propertyValue</span> <span style="color: #0000FF">of:</span> <span style="color: #0000FF; font-weight: bold">ValueHolder</span> <span style="color: #008000">new</span>;
<span style="color: #0000FF">label:</span> <span style="color: #BA2121">'About yourself.'</span>;
<span style="color: #0000FF">beRequired</span>.
<span style="color: #19177C">mold</span> <span style="color: #0000FF">checkboxField</span>
<span style="color: #0000FF">on:</span> <span style="color: #19177C">#propertyValue</span> <span style="color: #0000FF">of:</span> (<span style="color: #0000FF; font-weight: bold">ValueHolder</span> <span style="color: #0000FF">with:</span> <span style="color: #008000">true</span>);
<span style="color: #0000FF">label:</span> <span style="color: #BA2121">'Sign for the newsletter'</span>;
<span style="color: #0000FF">addCondition:</span> [ <span style="color: #666666">:</span><span style="color: #19177C">input</span> <span style="color: #666666">|</span> <span style="color: #19177C">fullname</span> <span style="color: #0000FF">isValid</span> <span style="color: #0000FF">not</span> <span style="color: #0000FF">or:</span> [ <span style="color: #19177C">input</span> <span style="color: #0000FF">or:</span> [ <span style="color: #19177C">fullname</span> <span style="color: #0000FF">value</span> <span style="color: #0000FF">first</span> <span style="color: #0000FF">=</span> <span style="color: #BA2121">$K</span> ] ] ]
<span style="color: #0000FF">labeled:</span> <span style="color: #BA2121">'Sorry, you may not opt out of our spam unless your name starts with K.'</span>.
<span style="color: #19177C">mold</span> <span style="color: #0000FF">openDialog:</span> <span style="color: #BA2121">'Example Eight'</span>
</pre>
</div>
<p><!-- HTML generated using hilite.me --></p>
<p></p>
<pre class="moz-signature" cols="72">--
GNU Dr. Geo
<a class="moz-txt-link-freetext" href="http://drgeo.eu">http://drgeo.eu</a>
<a class="moz-txt-link-freetext" href="http://blog.drgeo.eu">http://blog.drgeo.eu</a></pre>
</body>
</html>