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 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:
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
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 trygver@ifi.uio.no 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: trygver@ifi.uio.no
Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver
N-0378 Oslo Tel: (+47) 22 49 57 27
Norway
Karl, 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 trygver@ifi.uio.no 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: trygver@ifi.uio.no
Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver
N-0378 Oslo Tel: (+47) 22 49 57 27
Norway
squeak-dev@lists.squeakfoundation.org