<div dir="ltr">Great!!! nice!<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 3, 2023 at 3:39 PM Juan Vuletich via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>

  
    
  
  <div bgcolor="#ffffff">
    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 type="cite">
      
      <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 href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-UI" target="_blank">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 0% 0% repeat scroll 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></p>
      <pre cols="72">-- 
GNU Dr. Geo
<a href="http://drgeo.eu" target="_blank">http://drgeo.eu</a>
<a href="http://blog.drgeo.eu" target="_blank">http://blog.drgeo.eu</a></pre>
    </blockquote>
    <br>
    <br>
    <pre cols="72">-- 
Juan Vuletich
<a href="http://cuis.st" target="_blank">cuis.st</a>
<a href="http://github.com/jvuletich" target="_blank">github.com/jvuletich</a>
<a href="http://researchgate.net/profile/Juan-Vuletich" target="_blank">researchgate.net/profile/Juan-Vuletich</a>
<a href="http://independent.academia.edu/JuanVuletich" target="_blank">independent.academia.edu/JuanVuletich</a>
<a href="http://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank">patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="http://linkedin.com/in/juan-vuletich-75611b3" target="_blank">linkedin.com/in/juan-vuletich-75611b3</a>
<a href="http://twitter.com/JuanVuletich" target="_blank">twitter.com/JuanVuletich</a></pre>
  </div>

-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:small"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal"><span style="font-weight:bold">Hernán Wilkinson</span><br>Agile Software Development, Teaching & Coaching</span></font></span></span></strong></span></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Phone: +54-011</span></font></span></span></strong></span><font face="tahoma, sans-serif" size="2">-4893-2057</font></div><div style="font-size:12.8px"><strong style="font-family:tahoma,sans-serif;font-size:xx-small"><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Twitter: @HernanWilkinson</span></font></span></span></strong></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">site: <a href="http://www.10pines.com/" style="color:rgb(17,65,112)" target="_blank">http://www.10Pines.com</a></span></font></span></span></strong></span></div><div style="font-size:12.8px"><font face="tahoma, sans-serif"><span style="border-collapse:collapse">Address: Alem 896</span></font>, Floor 6, Buenos Aires, Argentina</div></div></div></div></div></div></div></div>