<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><font size="4">Hi Paul, <br>
</font></p>
<p><font size="4">Coincidentally, a few weeks ago, I was reading
about model-less GUI, not any particular implementation like the
ones you referred in your email, but about the general idea to
re-construct the whole or part of the GUI when an event occurs.</font></p>
<p><font size="4">It is true that it is not obvious to track the
source of events with the observer pattern: triggered in one
place, hooked in another ones. The tools to help the developer
comprehension of events is not really there. The fact that it is
based on symbol and not object does not help. I guess that what
we all do is to search for symbol in the source code, i.e.
#selected.</font></p>
<p><font size="4">Regarding the model, Morph itself is very neutral
regarding the necessity to have one. Pluggable morph requires
one but many others embed it (TextParagraphMorph, TextEnty
Morph). And when required, there are generic models
(ValueHolder, ListModel, ...).</font></p>
<p><b>A few points of thinking.</b> <br>
</p>
<p>It is possible to hook programmatically mouse/keyboard events to
a Morph. In your example the handlesMouseDown: and
mouseButtons1xxx can be set programmatically, so it avoid
subclassing. It may help to compose the GUI with sub morphs, using
sub morphs improves the efficiency. In your example the whole
rectangle of the GUI is rebuild even if only a small part needs
to be updates.</p>
<p>I am wondering if the simplicity you get from just rebuilding GUI
comes with a hidden cost.</p>
<p>Concerning model, don't you need one at some point to represent
the state of your application ? So most the time the model is not
a bargain as it already exists. Ok may be not for your converter
example.<br>
</p>
<p>In the Cuis-Smalltalk-UI, there is a UI-Mold package to describe
field input form, with data validation. It should be possible to
add a kind of computed ouput object.</p>
<p>Hilaire</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>