<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div><br></div>Hello all,<div><br></div><div>[Flame on]</div><div><br></div><div>It’s very sad that there’s no MVC implementation for Squeak or Cuis.</div><div><br></div><div>The “wrapper” implementation in VisualWorks is worth studying and copying.</div><div>It’s been stable for over 30 years and has survived numerous attempts to replace it.  </div><div>It’s well-suited for back-ends other than BitBLT (e.g., structured graphics APIs).</div><div>It supports scalable drag’n’drop GUI construction tools and easily extensible widgets and controls.</div><div>Wrapper is a more fine-grained class library for MVC, and includes framework classes such as ApplicationModel, PluggableAdaptor and ValueHolder to do what MVP seeks to add.</div><div><br></div><div>MVP is not MVC and cannot be said to "fix MVC flaws”; the MVP papers (based on the Taligent C++ version) refer to a 1980 version of MVC with no mention of the later VisualWorks frameworks.</div><div>Taligent, CommonPoint and Dolphin are all dead, VisualWorks is alive and well.</div><div><br></div><div><div>The “wrapper” implementation in VisualWorks is worth studying and copying.</div></div><div><br></div><div><div>[Flame off]</div></div><div><br></div><div>Stephen Pope</div><div><div>
<meta charset="UTF-8"><br class="Apple-interchange-newline" style="font-family: "Times New Roman"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; float: none; display: inline !important;">--------</span><br style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px;"><br style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px;"><span style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; float: none; display: inline !important;">Stephen Travis Pope    Ojai,</span><span style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; float: none; display: inline !important;"> </span><span style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; float: none; display: inline !important;">California, USA</span><br style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px;"><span style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: HelveticaNeue; font-size: 12px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">    </span><span style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: HelveticaNeue; font-size: 12px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"></span><span style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px;"></span><span style="font-family: "Times New Roman"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"></span><span style="font-family: "Times New Roman"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-size: 16px;"></span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: "Times New Roman"; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;"></span><span><img alt="pastedGraphic.tiff" src="cid:55B397C7-3D20-4E60-A051-4564245235A7@sd.cox.net"></span><meta charset="UTF-8"><font face="HelveticaNeue" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="font-style: normal; font-size: 12px;"><br>     http://HeavenEverywhere.com</span></font><div style="font-family: "Times New Roman"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font face="HelveticaNeue" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="font-style: normal; font-size: 12px;">     http://FASTLabInc.com</span></font></div><div style="font-family: "Times New Roman"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font face="HelveticaNeue" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="font-style: normal; font-size: 12px;">     https://vimeo.com/user19434036/videos</span></font></div><div style="font-family: "Times New Roman"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font face="HelveticaNeue" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="font-style: normal; font-size: 12px;">     </span></font><span style="font-size: 12px; font-family: HelveticaNeue;">http://heaveneverywhere.com/Reflections</span></div><div style="font-family: "Times New Roman"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font face="HelveticaNeue" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="font-style: normal; font-size: 12px;"><br></span></font><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: "Times New Roman"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"></div>
</div>
<div><br><blockquote type="cite"><div>On Aug 4, 2023, at 12:18 PM, Hilaire Fernandes via Cuis-dev <cuis-dev@lists.cuis.st> wrote:</div><div>
  

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  
  <div><p>Hi folks, <br>
    </p><p>Cuis does not come with the legacy MVC framework. From what I
      read even the Smalltalk coming with MVC offers a revisited
      version, ok may be not the Squeak one. Nevertheless it does not
      really matter if you want to develop a GUI application with Cuis
      because all you need is to use the observer pattern and view
      enriched with control, both present in Cuis.<br>
    </p><p>Indeed, this pattern has seen since then alternate design. For
      DrGeo, I pick up a different pattern, MVP, back in 2005. According
      to its promoters, MVP fixes MVC flaws, you can read further about
      that on related articles below.</p><p>In a few word, with MVP, the model informs its views using the
      observer pattern, so the model does not know about its view, as in
      MVC. The views also handle the low level controls, then informs
      the Presenter to take action at the model level. This part is
      different than MVC and offer more flexibility.<br>
    </p><p>In DrGeo there are a lot of different Models: domain of the
      application, the math items, the smalltlak sketch, the script, the
      macro, etc. Most of them with dedicated Views of different nature
      to display, design, etc the models. Then a bunch of Presenters,
      with different level of complexity : domain application presenter,
      tools to manage the user interaction on the canvas and builder to
      manage the process of constructing a math item.</p><p>All in all, I don't see any reason Cuis can not be used to design
      a complex GUI application. I have reworked the DrGeo code and
      class categories to make it easier to understand the different
      levels of responsibility in the application. In repo but not
      released in app yet though.</p><p><a moz-do-not-send="true" href="https://drive.google.com/file/d/1jWC7yLw8Q6sZeoq__m7K27vyOT8Dn55I/view?usp=sharing">Dolpin
        Smalltalk article about MVP,  </a><br>
    </p><p><a moz-do-not-send="true" href="http://www.wildcrest.com/Potel/Portfolio/mvp.pdf">Article
        from the original designers of MVP</a></p><p>Wikipedia:
      <a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter">https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter</a></p><p>Hilaire<br>
    </p><p><br>
    </p>
  </div>

-- <br>Cuis-dev mailing list<br>Cuis-dev@lists.cuis.st<br>https://lists.cuis.st/mailman/listinfo/cuis-dev<br></div></blockquote></div><br></div></body></html>