On 22 April 2014 21:02, Nicolai Hess <[email protected]> wrote: > 2014-04-22 13:56 GMT+02:00 Igor Stasenko <[email protected]>: > > i want to use different adaptor for TextModel, when opening my UI >> so that when widget is built for it, it will be my own widget, >> not PluggableTextMorph.. >> >> but i found it hard to do.. here what i tried: >> >> >> I try to replace bindings, so at the stage when spec interpreted, it uses >> my bindings: >> >> openWithSpec >> >> | old result | >> old := SpecInterpreter bindings. >> >> SpecInterpreter bindings: TxAdapterBindings new. >> >> [ result := super openWithSpec ] >> ensure: [ SpecInterpreter bindings: old ]. >> ^ result >> >> >> in TxAdapterBindings i initialize it same as morphic bindging, except >> from text model binding: >> #TextAdapter => #TxTextAdapter >> >> but it is never invoked nor used :( >> >> i understand the overall model, but it seems like not completely, >> (else the above trick would work).. what do i miss? >> >> -- >> Best regards, >> Igor Stasenko. >> > > > You code works, it is just that the TextModel is not the first one that > calls the > spec interpreter. The first one is the WindowModel. > And after a spec is "interpreted" spec interpreter calls > self hardResetBindings > and that one reinitialize the binding to MorphicAdapterBindings. > > indeed.. now i wonder, why spec interpreter is doing such nasty things? because because of it, you lose any control over bindings , when building composite UI. if spec interpreter exposing bindings to outside, it must never reset them, because it should be a user's concern, when/where reset or replace them. otherwise it makes little sense in having bindings, if spec interpreter forces to always use default ones.
> nicolai > -- Best regards, Igor Stasenko.
