Bug 35485

GemBuilder for Smalltalk/VA

5.3, 5.2.5, 5.2.4, 5.2.3, 5.2.2, 5.2.1, 5.2

VA

5.3.1, 5.2.6

findClass does not find class with versions

GemStone classes that have more than one version are displayed with
the version index, for example MyClass [ 3 ].  The SystemBrowser
Classes menu item "Find Class..." does not select classes that have
more than one version, although it locates and selects the
SymbolDictionary that the class is in.

Workaround

File the following into your image:

!GbxBrowserWindow publicMethods !

updateClasses
     | list |

(self extraAt: #removedClassPart) == true ifTrue: [ ^self ].

list := model classList.
list isNil ifTrue: [ list := Array new ].
self classList: list.
self updateClassList: (self subpartNamed: 'ClassView') items: list selection: (model formattedClassNames)!

updateClassList: listPart items: newItems selection: newSelection
"update the contents of the given list, and change the selection only as much as necessary.
The default list behavior is to leave items selected but not issue a select notification.
Returns the new selection set."
     | view |

"verify that the selected items are actually in the list, removing any bad ones"
newSelection copy do: [:e |
     (newItems includes: e) ifFalse: [
          (listPart widget selectedItems includes: e) ifTrue: [
               "check for a version number"
               listPart widget deselectItem: e. ].
          newSelection remove: e ].
          newItems do:[:newItem |
                    ((e asString, ' [*]') match: newItem) ifTrue:[
                         newSelection add: newItem.
                         ]]].
listPart items: newItems.
listPart selectedItems: newSelection.
"self log: 'new selection: ', newSelection printString."
^newSelection! !


Last updated: 8/27/06