<!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>