Woot!  Exactly the right direction.  Thanks, Frank!<br><br><div class="gmail_quote">On Thu, Mar 17, 2011 at 4:05 PM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">A new version of Tools was added to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/Tools-fbs.322.mcz" target="_blank">http://source.squeak.org/inbox/Tools-fbs.322.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Tools-fbs.322<br>
Author: fbs<br>
Time: 17 March 2011, 11:04:56.212 pm<br>
UUID: 1d3fc4fc-4947-1c44-af38-d1c53d0b5703<br>
Ancestors: Tools-fbs.321<br>
<br>
And now we can refactor selectOriginalCategoryForCurrentMethod!<br>
<br>
=============== Diff against Tools-fbs.321 ===============<br>
<br>
Item was changed:<br>
  ----- Method: Browser&gt;&gt;selectClassNamed: (in category &#39;class list&#39;) -----<br>
  selectClassNamed: aSymbolOrString<br>
        | className currentMessageCategoryName currentMessageName |<br>
        currentMessageCategoryName := [self selectedMessageCategoryName]<br>
                                                                                on: Error<br>
                                                                                do: [:ex| ex return: nil].<br>
        currentMessageName := [self selectedMessageName]<br>
                                                                on: Error<br>
                                                                do: [:ex| ex return: nil].<br>
<br>
        selectedClassName := aSymbolOrString ifNotNil: [ aSymbolOrString asSymbol ].<br>
        self setClassOrganizer.<br>
<br>
        &quot;Try to reselect the category and/or selector if the new class has them.&quot;<br>
        messageCategoryListIndex := self messageCategoryList<br>
                                                                                indexOf: currentMessageCategoryName<br>
                                                                                ifAbsent: [0].<br>
+       self selectMessageNamed: (self hasMessageCategorySelected<br>
+               ifTrue: [ currentMessageName ]<br>
+               ifFalse: [ nil ]).<br>
-       messageListIndex := messageCategoryListIndex = 0<br>
-                                                       ifTrue: [0]<br>
-                                                       ifFalse: [self messageList<br>
-                                                                               indexOf: currentMessageName<br>
-                                                                               ifAbsent: [0]].<br>
<br>
        self hasMessageSelected ifTrue:<br>
                [self editSelection: #editMessage] ifFalse:<br>
+       [self messageCategoryListIndex ~= 0 ifTrue:<br>
-       [messageCategoryListIndex ~= 0 ifTrue:<br>
                [self editSelection: #newMessage] ifFalse:<br>
        [self classCommentIndicated<br>
                ifTrue: []<br>
                ifFalse: [self editSelection: (self hasClassSelected not<br>
                                        ifTrue: [(metaClassIndicated or: [ self hasSystemCategorySelected not ])<br>
                                                ifTrue: [#none]<br>
                                                ifFalse: [#newClass]]<br>
                                        ifFalse: [#editClass])]]].<br>
        contents := nil.<br>
        self selectedClass isNil<br>
                ifFalse: [className := self selectedClass name.<br>
                                        (RecentClasses includes: className)<br>
                                ifTrue: [RecentClasses remove: className].<br>
                        RecentClasses addFirst: className.<br>
                        RecentClasses size &gt; 16<br>
                                ifTrue: [RecentClasses removeLast]].<br>
        self changed: #classSelectionChanged.<br>
        self changed: #classCommentText.<br>
        self changed: #classListIndex.  &quot;update my selection&quot;<br>
        self changed: #messageCategoryList.<br>
        self changed: #messageList.<br>
        self changed: #relabel.<br>
        self contentsChanged!<br>
<br>
Item was changed:<br>
  ----- Method: Browser&gt;&gt;selectOriginalCategoryForCurrentMethod (in category &#39;message category list&#39;) -----<br>
  selectOriginalCategoryForCurrentMethod<br>
        &quot;private - Select the message category for the current method.<br>
<br>
         Note:  This should only be called when somebody tries to save<br>
         a method that they are modifying while ALL is selected.<br>
<br>
         Returns: true on success, false on failure.&quot;<br>
        | aSymbol selectorName |<br>
        aSymbol := self categoryOfCurrentMethod.<br>
        selectorName := self selectedMessageName.<br>
        (aSymbol notNil and: [aSymbol ~= ClassOrganizer allCategory])<br>
                ifTrue:<br>
                        [messageCategoryListIndex := (self messageCategoryList indexOf: aSymbol).<br>
                        messageListIndex := (self messageList indexOf: selectorName).<br>
+                       selectedMessageName := selectorName.<br>
                        self changed: #messageCategorySelectionChanged.<br>
                        self changed: #messageCategoryListIndex.        &quot;update my selection&quot;<br>
                        self changed: #messageList.<br>
                        self changed: #messageListIndex.<br>
                        ^ true].<br>
        ^ false!<br>
<br>
<br>
</blockquote></div><br>