[squeak-dev] The Inbox: Tools-fbs.220.mcz
frank.shearar at angband.za.org
Fri Apr 2 10:44:44 UTC 2010
I'll look at #alternativeBrowseIt - I didn't know there was such a thing :)
I've attached a screenshot of what I mean, at any rate. Assuming we're
talking about the same thing, the left-hand pane one might call a
selector list (accessed through instvars called selectorListIndex,
selectorList) and the right-hand pane one might call a message list
(accessed through instvars like messageList and messageListIndex).
The left-hand pane actually contains both selector names and class names.
When you choose a selector in the left-hand pane (say
writeClassRename:was) the right-hand pane fills up with the implementors
of that selector. Hit "browse" and you go where you'd expect.
If you choose a class in the left-hand pane (say XMLWarningException)
the right-hand pane is empty, obviously.
Now if you hit "browse" at this point, nothing happens. That surprised
me: I'd expected a Browser to open up displaying XMLWarningException.
So I dug around, and changed the behaviour of #selection and
#selectedClassOrMetaClass to say "well, if there's no method selected in
the right-hand pane, look in the left-hand pane. If something there's
selected, open a Browser on it, otherwise do nothing."
"No method selected" can only happen when you've selected a class in the
left-hand pane: otherwise, the first item in the right-hand pane's selected.
Chris Muller wrote:
> I don't understand, MessageNames don't have a "left-hand pane" do
> they? Only a top and bottom....
> On Wed, Mar 31, 2010 at 2:42 PM, <commits at source.squeak.org> wrote:
>> A new version of Tools was added to project The Inbox:
>> ==================== Summary ====================
>> Name: Tools-fbs.220
>> Author: fbs
>> Time: 31 March 2010, 10:42:28.8 pm
>> UUID: 0eca72cb-a1d4-4849-9da6-15d4b31ab9a4
>> Ancestors: Tools-fbs.219, Tools-nice.219
>> Allows the Browse button to work on class names that appear in the left-hand pane of a MessageNames browser.
>> =============== Diff against Tools-nice.219 ===============
>> Item was changed:
>> ----- Method: MessageNames>>selection (in category 'selection') -----
>> "Answer the item in the list that is currently selected, or nil if no selection is present"
>> + ^ messageListIndex = 0
>> + ifTrue: [self selectorList at: selectorListIndex ifAbsent: [nil]]
>> + ifFalse: [self messageList at: messageListIndex ifAbsent: [nil]].!
>> - ^ self messageList at: messageListIndex ifAbsent: [nil]!
>> Item was added:
>> + ----- Method: MessageNames>>selectedClassOrMetaClass (in category 'class list') -----
>> + selectedClassOrMetaClass
>> + "Answer the currently selected class (or metaclass)."
>> + messageListIndex > 0 ifTrue: [
>> + ^ self setClassAndSelectorIn: [:c :s | ^c]].
>> + selectorListIndex > 0 ifTrue: [^Smalltalk classNamed: (self selectorList at: selectorListIndex)].
>> + ^ nil.
>> + !
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 61175 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100402/01b93c90/MessageNames.png
More information about the Squeak-dev