Hi,
I'm trying to preset variables to TextModel but I'm not sure if/how can such thing be achieved. With Workspace (in pre-GT Pharo) I could do ws := Workspace openContents: 'a'. b := Dictionary new. b add: (WorkspaceVariable key: #a value: 42). ws setBindings: b. Unfortunately Workspace isn't Spec's ComposableModel so I can't just reuse it. Is something similar possible with TextModel? Perhaps somehow changing model to Workspace (without actually opening the workspace) or something? Inspector seems to do something like that but my investigation ended up in OpalCompiler which is way over my head. :( Thanks, Peter |
May be this is the occasion to create a WorkspaceModel and support this
behavior. Stef On 4/10/14 17:09, Peter Uhnák wrote: > Hi, > > I'm trying to preset variables to TextModel but I'm not sure if/how > can such thing be achieved. > > With Workspace (in pre-GT Pharo) I could do > > ws := Workspace openContents: 'a'. > b := Dictionary new. > b add: (WorkspaceVariable key: #a value: 42). > ws setBindings: b. > > Unfortunately Workspace isn't Spec's ComposableModel so I can't just > reuse it. > Is something similar possible with TextModel? Perhaps somehow changing > model to Workspace (without actually opening the workspace) or something? > > Inspector seems to do something like that but my investigation ended > up in OpalCompiler which is way over my head. :( > > Thanks, > Peter |
In reply to this post by Peter Uhnak
I don't know how this works for variable binding, (that's how the inspector works) |
I was looking at the Inspector and I saw the doItContext/doItReceiver but it spans over several objects and I wasn't able to figure out how it actually works / how to use it. (OpalCompiler was calling various methods on the objects, so it was expecting some kind of structure). Could you give me an example? On Sat, Oct 4, 2014 at 9:15 PM, Nicolai Hess <[hidden email]> wrote:
|
This opens a text field where all "self ..." calls are evaluated for the morph object: for example |t| t:=TextModel new. t title:'evaluates for a morph'. t doItReceiver:(Morph new). t openWithSpec The workspace handles this on its own, there is no support for this in TextModel/TextAdapter 2014-10-04 21:20 GMT+02:00 Peter Uhnák <[hidden email]>:
|
In reply to this post by Peter Uhnak
You can set your own context using #doItContext: method.
Context object should have following methods: #bindingOf:, #method, namedTempAt:, #tempNames. See GLMDoItContext from Glamour for example. |
Free forum by Nabble | Edit this page |