I just posted a new version of the BabyIDE report and Squeak image.
I post an image rather then a Montizello loadable file because it is just a demo. I am working on a small application all done in BabyIDE. I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is completed. Enjoy --Trygve --
Trygve
Reenskaug mailto: [hidden email] Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver N-0378
Oslo Tel: (+47) 22 49 57 27 Norway |
Trygve Reenskaug wrote:
> I just posted a new version of the BabyIDE report and Squeak image. > I post an image rather then a Montizello loadable file because it is > just a demo. > I am working on a small application all done in BabyIDE. > I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is > completed. I looked at the IDE and tried to find out how the different shapes got selected in a sequence, but I got lost. Are the roles bound before the animation starts or how is it set up ? Karl |
Hi Karl,
Every role has a similarly named method in the context class. This method returns the object that shall be bound to the role. E.g.: ¤ Shapes4ArrowsCtx >>Shape1 ¤ ^data anyShape The different shapes (and arrows) are found in a runtime dictionary that that is filled when the context class is instantiated: ¤ Shapes4ArrowsCtx >>bindRolesToObjects ¤ | messName | ¤ self class roleNames ¤ do: [:rNam | ¤ messName := rNam asString asSymbol. ¤ roleMap ¤ at: messName ¤ put: (self ¤ perform: messName ¤ ifNotUnderstood: [])]. ¤ ^ roleMap The idea is that a programmer need to understand this, but should not need to understand the details of how it is done. (To see the details, look at these methods: Shapes4Env>>startArrowAnimation Shapes4ArrowsCtx class>>executeInContext: Shapes4ArrowsCtx >>on:env: Shapes4ArrowsCtx >>bindRolesToObjects I hope it answers your question. The above is the current implementation. I believe there is much room for simplification that should emerge when I write a tutorial. (Much better to rewrite the code than to try its complexities). Chers --Trygve On 14.09.2008 16:25, Karl Ramberg wrote: Trygve Reenskaug wrote: --
Trygve
Reenskaug mailto: [hidden email] Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver N-0378
Oslo Tel: (+47) 22 49 57 27 Norway |
I found much of what you describe after some deeper exploration. This
new way of writing and presenting takes a little time getting used to :-) I like the way you can add in and out super classes in the browser. Karl On 9/14/08, Trygve Reenskaug <[hidden email]> wrote: > Hi Karl, > Every role has a similarly named method in the context class. This > method returns the object that shall be bound to the role. E.g.: > > ¤ Shapes4ArrowsCtx >>Shape1 > ¤ ^data anyShape > > The different shapes (and arrows) are found in a runtime dictionary that > that is filled when the context class is instantiated: > > ¤ Shapes4ArrowsCtx >>bindRolesToObjects > ¤ | messName | > ¤ self class roleNames > ¤ do: [:rNam | > ¤ messName := rNam asString asSymbol. > ¤ roleMap > ¤ at: messName > ¤ put: (self > ¤ perform: messName > ¤ ifNotUnderstood: [])]. > ¤ ^ roleMap > > The idea is that a programmer need to understand this, but should not > need to understand the details of how it is done. (To see the details, > look at these methods: > Shapes4Env>>startArrowAnimation > Shapes4ArrowsCtx class>>executeInContext: > Shapes4ArrowsCtx >>on:env: > Shapes4ArrowsCtx >>bindRolesToObjects > > I hope it answers your question. > > The above is the current implementation. I believe there is much room > for simplification that should emerge when I write a tutorial. (Much > better to rewrite the code than to try its complexities). > > Chers > --Trygve > > > On 14.09.2008 16:25, Karl Ramberg wrote: >> Trygve Reenskaug wrote: >>> I just posted a new version of the BabyIDE report and Squeak image. >>> I post an image rather then a Montizello loadable file because it is >>> just a demo. >>> I am working on a small application all done in BabyIDE. >>> I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is >>> completed. >> >> I looked at the IDE and tried to find out how the different shapes got >> selected in a sequence, but I got lost. >> Are the roles bound before the animation starts or how is it set up ? >> >> Karl >> >> > > -- > > Trygve Reenskaug mailto: [hidden email] > > Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver > > N-0378 Oslo Tel: (+47) 22 49 57 27 > > Norway > > |
Do you feel like a guinea pig? You should, if you are trying to read and even write programs in BabyIDE. The programmer's mental model of what is a DCI-compliant program is still evolving. It will be very useful if you continue informing me about potential stumbling blocks so that I can iron them out. All the best --Trygve On 15.09.2008 22:52, karl ramberg wrote: I found much of what you describe after some deeper exploration. This new way of writing and presenting takes a little time getting used to :-) I like the way you can add in and out super classes in the browser. Karl On 9/14/08, Trygve Reenskaug [hidden email] wrote:Hi Karl, Every role has a similarly named method in the context class. This method returns the object that shall be bound to the role. E.g.: ¤ Shapes4ArrowsCtx >>Shape1 ¤ ^data anyShape The different shapes (and arrows) are found in a runtime dictionary that that is filled when the context class is instantiated: ¤ Shapes4ArrowsCtx >>bindRolesToObjects ¤ | messName | ¤ self class roleNames ¤ do: [:rNam | ¤ messName := rNam asString asSymbol. ¤ roleMap ¤ at: messName ¤ put: (self ¤ perform: messName ¤ ifNotUnderstood: [])]. ¤ ^ roleMap The idea is that a programmer need to understand this, but should not need to understand the details of how it is done. (To see the details, look at these methods: Shapes4Env>>startArrowAnimation Shapes4ArrowsCtx class>>executeInContext: Shapes4ArrowsCtx >>on:env: Shapes4ArrowsCtx >>bindRolesToObjects I hope it answers your question. The above is the current implementation. I believe there is much room for simplification that should emerge when I write a tutorial. (Much better to rewrite the code than to try its complexities). Chers --Trygve On 14.09.2008 16:25, Karl Ramberg wrote:Trygve Reenskaug wrote:I just posted a new version of the BabyIDE report and Squeak image. I post an image rather then a Montizello loadable file because it is just a demo. I am working on a small application all done in BabyIDE. I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is completed.I looked at the IDE and tried to find out how the different shapes got selected in a sequence, but I got lost. Are the roles bound before the animation starts or how is it set up ? Karl-- Trygve Reenskaug mailto: [hidden email] Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver N-0378 Oslo Tel: (+47) 22 49 57 27 Norway --
Trygve
Reenskaug mailto: [hidden email] Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver N-0378
Oslo Tel: (+47) 22 49 57 27 Norway |
Free forum by Nabble | Edit this page |