<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Hilaire,<br>
<br>
I'm sure this will be useful for many projects. Thanks for doing it!<br>
<br>
Cheers,<br>
<br>
On 4/29/2023 4:43 AM, Hilaire Fernandes via Cuis-dev wrote:
<blockquote cite="mid:1bd93032-f8b5-9968-7532-143700884955@free.fr"
type="cite">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<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 moz-do-not-send="true"
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>
...<br>
<p>Smalltalk code to describe it:</p>
<div style="background: none repeat scroll 0% 0% rgb(248, 248,
248); overflow: auto; width: auto; border-style: solid;
border-color: gray; border-width: 0.1em 0.1em 0.1em 0.8em;
padding: 0.2em 0.6em;">
<pre style="margin: 0pt; line-height: 125%;"> <span style="color: rgb(102, 102, 102);">|</span><span style="color: rgb(25, 23, 124);"> mold fullname email confirmEmail </span><span style="color: rgb(102, 102, 102);">|</span>
<span style="color: rgb(25, 23, 124);">mold</span> <span style="color: rgb(102, 102, 102);">:=</span> <span style="color: rgb(0, 0, 255); font-weight: bold;">Mold</span> <span style="color: rgb(0, 128, 0);">new</span>.
<span style="color: rgb(25, 23, 124);">fullname</span> <span style="color: rgb(102, 102, 102);">:=</span> <span style="color: rgb(25, 23, 124);">mold</span> <span style="color: rgb(0, 0, 255);">stringField</span>
<span style="color: rgb(0, 0, 255);">on:</span> <span style="color: rgb(25, 23, 124);">#propertyValue</span> <span style="color: rgb(0, 0, 255);">of:</span> <span style="color: rgb(0, 0, 255); font-weight: bold;">ValueHolder</span> <span style="color: rgb(0, 128, 0);">new</span>;
<span style="color: rgb(0, 0, 255);">label:</span> <span style="color: rgb(186, 33, 33);">'Your Name'</span>;
<span style="color: rgb(0, 0, 255);">beRequired</span>;
<span style="color: rgb(0, 0, 255);">addCondition:</span> [ <span style="color: rgb(102, 102, 102);">:</span><span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(102, 102, 102);">|</span> <span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(0, 0, 255);">includesSubString:</span> <span style="color: rgb(186, 33, 33);">' '</span>]
<span style="color: rgb(0, 0, 255);">labeled:</span>
[ <span style="color: rgb(102, 102, 102);">:</span><span style="color: rgb(25, 23, 124);">wrong</span> <span style="color: rgb(102, 102, 102);">|</span>
<span style="color: rgb(186, 33, 33);">'Please enter your first and last name. I couldn''t find a space in {1}'</span> <span style="color: rgb(0, 0, 255);">format:</span> {<span style="color: rgb(25, 23, 124);">wrong</span>} ].
<span style="color: rgb(25, 23, 124);">email</span> <span style="color: rgb(102, 102, 102);">:=</span> <span style="color: rgb(25, 23, 124);">mold</span> <span style="color: rgb(0, 0, 255);">emailField</span>
<span style="color: rgb(0, 0, 255);">on:</span> <span style="color: rgb(25, 23, 124);">#propertyValue</span> <span style="color: rgb(0, 0, 255);">of:</span> <span style="color: rgb(0, 0, 255); font-weight: bold;">ValueHolder</span> <span style="color: rgb(0, 128, 0);">new</span>;
<span style="color: rgb(0, 0, 255);">label:</span> <span style="color: rgb(186, 33, 33);">'Email Address:'</span>.
<span style="color: rgb(25, 23, 124);">confirmEmail</span> <span style="color: rgb(102, 102, 102);">:=</span> <span style="color: rgb(25, 23, 124);">mold</span> <span style="color: rgb(0, 0, 255);">emailField</span>
<span style="color: rgb(0, 0, 255);">on:</span> <span style="color: rgb(25, 23, 124);">#propertyValue</span> <span style="color: rgb(0, 0, 255);">of:</span> <span style="color: rgb(0, 0, 255); font-weight: bold;">ValueHolder</span> <span style="color: rgb(0, 128, 0);">new</span>;
<span style="color: rgb(0, 0, 255);">label:</span> <span style="color: rgb(186, 33, 33);">'Confirm Email:'</span>.
<span style="color: rgb(25, 23, 124);">email</span>
<span style="color: rgb(0, 0, 255);">addCondition:</span> [ <span style="color: rgb(102, 102, 102);">:</span><span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(102, 102, 102);">|</span> <span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(0, 0, 255);">=</span> <span style="color: rgb(25, 23, 124);">confirmEmail</span> <span style="color: rgb(0, 0, 255);">input</span> ]
<span style="color: rgb(0, 0, 255);">labeled:</span> <span style="color: rgb(186, 33, 33);">'Email addresses did not match.'</span>.
<span style="color: rgb(25, 23, 124);">confirmEmail</span>
<span style="color: rgb(0, 0, 255);">addCondition:</span> [ <span style="color: rgb(102, 102, 102);">:</span><span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(102, 102, 102);">|</span> <span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(0, 0, 255);">=</span> <span style="color: rgb(25, 23, 124);">email</span> <span style="color: rgb(0, 0, 255);">input</span> ]
<span style="color: rgb(0, 0, 255);">labeled:</span> <span style="color: rgb(186, 33, 33);">'Email addresses did not match.'</span>.
<span style="color: rgb(25, 23, 124);">mold</span> <span style="color: rgb(0, 0, 255);">textField</span>
<span style="color: rgb(0, 0, 255);">on:</span> <span style="color: rgb(25, 23, 124);">#propertyValue</span> <span style="color: rgb(0, 0, 255);">of:</span> <span style="color: rgb(0, 0, 255); font-weight: bold;">ValueHolder</span> <span style="color: rgb(0, 128, 0);">new</span>;
<span style="color: rgb(0, 0, 255);">label:</span> <span style="color: rgb(186, 33, 33);">'About yourself.'</span>;
<span style="color: rgb(0, 0, 255);">beRequired</span>.
<span style="color: rgb(25, 23, 124);">mold</span> <span style="color: rgb(0, 0, 255);">checkboxField</span>
<span style="color: rgb(0, 0, 255);">on:</span> <span style="color: rgb(25, 23, 124);">#propertyValue</span> <span style="color: rgb(0, 0, 255);">of:</span> (<span style="color: rgb(0, 0, 255); font-weight: bold;">ValueHolder</span> <span style="color: rgb(0, 0, 255);">with:</span> <span style="color: rgb(0, 128, 0);">true</span>);
<span style="color: rgb(0, 0, 255);">label:</span> <span style="color: rgb(186, 33, 33);">'Sign for the newsletter'</span>;
<span style="color: rgb(0, 0, 255);">addCondition:</span> [ <span style="color: rgb(102, 102, 102);">:</span><span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(102, 102, 102);">|</span> <span style="color: rgb(25, 23, 124);">fullname</span> <span style="color: rgb(0, 0, 255);">isValid</span> <span style="color: rgb(0, 0, 255);">not</span> <span style="color: rgb(0, 0, 255);">or:</span> [ <span style="color: rgb(25, 23, 124);">input</span> <span style="color: rgb(0, 0, 255);">or:</span> [ <span style="color: rgb(25, 23, 124);">fullname</span> <span style="color: rgb(0, 0, 255);">value</span> <span style="color: rgb(0, 0, 255);">first</span> <span style="color: rgb(0, 0, 255);">=</span> <span style="color: rgb(186, 33, 33);">$K</span> ] ] ]
<span style="color: rgb(0, 0, 255);">labeled:</span> <span style="color: rgb(186, 33, 33);">'Sorry, you may not opt out of our spam unless your name starts with K.'</span>.
<span style="color: rgb(25, 23, 124);">mold</span> <span style="color: rgb(0, 0, 255);">openDialog:</span> <span style="color: rgb(186, 33, 33);">'Example Eight'</span>
</pre>
</div>
<p><!-- HTML generated using hilite.me --></p>
<pre class="moz-signature" cols="72">--
GNU Dr. Geo
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://drgeo.eu">http://drgeo.eu</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://blog.drgeo.eu">http://blog.drgeo.eu</a></pre>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
</body>
</html>