2016-02-13 16:24 GMT+01:00 stepharo <stepharo@free.fr>:



2016-02-09 13:46 GMT+01:00 stepharo <stepharo@free.fr>:
Hi nicolai

I agree. I will have a look at the Calipso experience of Alain.
Because may be Calipso + Spec layout format would be much nicer.
Did you look at it?

I could not find anything about Calipso, what is it?

http://smalltalkhub.com/#!/~AlainPlantec/Calypso



Sorry still can not find out what this is about. With this amount of documentation, I guess
it is not yet ready for review/feedback.

��

Stef




��
Alain just brainstormed but this is interesting for thinking.

Stef

What I hate also is that the

��AbstractApdate>>update: aSymbol

������ self changed: aSymbol

This is a bit terrible because the adpater should not exist at runtime
and adapter should just encapsulate how to create and set the communication
between the model and the view. Now it is in the middle and this is not good.

stef


Le 8/2/16 11:31, Nicolai Hess a ��crit��:


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