Mantis - Squeak
Viewing Issue Advanced Details
6814 Tools feature N/A 12-16-07 11:41 12-17-07 12:24
Damien Cassou  
acknowledged 3.9  
0006814: Inspector dive-into/pop enhancement
From the squeak-dev mailing list:

Similarly to VisualWorks (at least back when I used it), this change adds the ability to "dive into" an attribute of an object being inspected without opening a new inspector, i.e. in the same window. So for instance if you inspect something like, say:

OrderedCollection with: 'abc' with: #(1 2 'def')

then click on the collection's second element, i.e. the Array, right-click and "dive into" it, the inspector's object is updated to be the Array instead of the OrderedCollection. You could then dive further into the SmallIntegers or the ByteString, or "pop" back out to the previously inspected object. The Inspector instance remembers its own history, so any number of dives can be retraced to the initial object. For convenience, the double-click action on a selected attribute is defined to be "dive into", unless you double-click on "self" in the inspector, in which case you "pop" back one step. I haven't found a good way of updating the window title yet, so it's a bit hacky for now (checking the inspector's dependents for a SystemWindow doesn't seem very elegant), but otherwise it works great. Just a convenient way of drilling down through various layers of objects and being able to back up if need be, without having 16 inspectors cluttering up your screen when you're done ;-)
The update of the Inspector window title should probably be done via dependency rather than my "temporary" hack...

Also, I don't know enough about Morphs to know when the Inspector is called via the #openOn:withEvalPane:[...] series of methods (which haven't been modified) and when the #openAsMorphOn:[...] series of methods (which have been modified and seemed to be used when I tried it).

Possibly a LinkedList or other stack-like collection might be more appropriate for storing the Inspector's history than an everyday OrderedCollection.

Hope it helps someone, personally I like to jump around within a single Inspector rather than opening multiple Inspector windows to see the guts of an object.
 InspectorDiveInto.1.cs [^] (7,081 bytes) 12-16-07 11:41

Damien Cassou   
12-17-07 12:24   
I will have a look at it and try to integrate it. Thank you