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*!).