Chris Cunnington wrote:
http://www.osrcon.ca/image2.png
http://www.osrcon.ca/image1.png
Yea, I'm not asking this very well. And all things Renggli make my
head spin.
In image2, if I inspect the string 'bob' I see self contains a string
called 'bob'. It does not say "a ByteString", which to me means the
usual behaviour has been overtaken by something else. We don't get an
instance; we get only its return value. The instance "a ByteString"
was no longer as important as its return value.
In image1, Lukas has overwritten Object>>printString: in
SUObject>>printString:. And he's using a pattern ("composite with
decorations" or something) to represent the domain of the JavaScript
language in Smalltalk.
If I print "SUSlider new" I don't get "a SUSlider". I get a string of
JavaScript. What is printed out is what is found in self. If I inspect
"SUSlider new" I can see in self the string that will be produced. I
can also see in the decoration instance variable "a SUCreate". With
each decoration in the chain he makes the string in self gets longer.
If I execute that entire piece of code from "SUSlider new" down to
"onChange:" I will get a string of pure JavaScript.
If how I'm asking this is still really confusing, I'll have to sit on
it for a few days. I seem to do my best comprehending when I'm asleep.
Thanks,
Chris
You may already understand the cascade of message sends, or it may be
confounding your understanding. That is, if you are incrementally
inspecting from "X := SUSlider new" up to each next semi-colon and
seeing each Inspector pointing at a different object, since "new" is
executed each time. Just to round out your understanding of self try
"Do It" separately on each the following lines...
x := SUSLider new new Control.Slider(null,null) inspect
x handleId: 'handle'
x trackId: track
x value: position
x range: (0 to: 100)
x onChange: ( SUUpdater new id: 'position' )
_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners