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