2017-04-28 12:59 GMT+02:00 Denis Kudriashov <dionisiydk@gmail.com>:
2017-04-28 12:26 GMT+02:00 Peter Uhnak <i.uhnak@gmail.com>:
backend specific like createMorphicView: and we need hierarchy of backends here which will choose appropriate message.
Which is exactly what we do not want, to directly bind model to the view; but I feel I am missing your point, can you rephrase it please?
This is exactly what I mean. Now there is no cases where anybody defines special adapter for existing model. And you can't do it because then you will need modify global MorphicAdapterBindings to specify new morph class. And my sentence was: if we now live with that then we can simplify design a lot by directly asking model for a view. It will be still platform independent because concrete backend will use specific message like createMorphicView or createCocoaView.
And it is not too far from supporting multiple view. Imaging that we have ItemSelectionModel. It can be shown as comboBox, radio button group or list. In spec methods ( #defaultSpec) we can use logical name for views: #comboBoxView, #radioGroupView, #listView. Then spec interpreter will call this methods on current backend which will return view instances. MorphicBackend will return concrete morph instances. Then view will be passed to model for initialisation: view := backend perform: spec viewName. model showItemsOn: view. view layoutWith: spec layout. Example is of course simplistic but I hope it shows that we can model spec without extra adapter component.