2016-02-08 10:37 GMT+01:00 stepharo <stepharo@free.fr>:
Hi guys

I should say that I'm sick (gift from my little boy) so may be this is obvious.

I'm looking at the code of Spec and I hate this code :)

widgetDo: aBlock

�� �� ^ self widget ifNotNil: aBlock


I do not see why widgetDo: has to test for nil
So I transformed

widgetDo: aBlock

�� �� ^ self widget ifNotNil: aBlock

into


widgetDo: aBlock

�� �� ^ aBlock cull: self widget

BTW I hate all the cull: call. They are connected with sloppiness). It is far too easy to use cull:
I do not know how many arguments, I do not care I use cull:
cull: is slow slow and help producing messing API.

And it broke. The methodBrowser example did not work anymore and many others.
Debugger felt down....
I feel sad. Now my brain is dead so I cannot concentrate more.


Stef


This is a big problem with morphic/spec ui elements. You never know for sure
what code this
self update ---> search through all (dynamicly added) dependents and notify
will finally call.
In this example we are about to *built* the widgets and in this run , we change a component that
will update all dependents goes back and forth between model, adapter and widget. And all
before the widget is actually accessible for the widgetDo: call.

(and, REALLY we need to clean this up. This is really bad code if we announce a textChanged announcement for
a text component, if we *initialize* an *empty textcomponent* with an *empty text*!).