Marcel Taeumel uploaded a new version of Tools to project The Trunk: http://source.squeak.org/trunk/Tools-mt.537.mcz
==================== Summary ====================
Name: Tools-mt.537 Author: mt Time: 2 March 2015, 10:41:49.215 am UUID: eb73e15d-fffe-b942-b160-5b3cf793e656 Ancestors: Tools-mt.535
Make use of proper abstractions/interface in browser models for message category selection.
=============== Diff against Tools-mt.535 ===============
Item was changed: ----- Method: Browser>>setClass:selector: (in category 'initialize-release') ----- setClass: aBehavior selector: aSymbol "Set the state of a new, uninitialized Browser."
+ | isMeta aClass | - | isMeta aClass messageCatIndex | aBehavior ifNil: [^ self]. (aBehavior isKindOf: Metaclass) ifTrue: [ isMeta := true. aClass := aBehavior soleInstance] ifFalse: [ isMeta := false. aClass := aBehavior]. + + self + selectEnvironment: aClass environment; + selectCategoryForClass: aClass; + classListIndex: (self classListIndexOf: aClass name); + metaClassIndicated: isMeta; + setSelector: aSymbol.! - self selectEnvironment: aClass environment. - self selectCategoryForClass: aClass. - self classListIndex: (self classListIndexOf: aClass name). - self metaClassIndicated: isMeta. - aSymbol ifNil: [^ self]. - messageCatIndex := aBehavior organization numberOfCategoryOfElement: aSymbol. - self messageCategoryListIndex: (messageCatIndex > 0 - ifTrue: [messageCatIndex + 1] - ifFalse: [0]). - messageCatIndex = 0 ifTrue: [^ self]. - self messageListIndex: ( - (aBehavior organization listAtCategoryNumber: messageCatIndex) - indexOf: aSymbol).!
Item was changed: ----- Method: Browser>>setSelector: (in category 'initialize-release') ----- setSelector: aSymbol "Make the receiver point at the given selector, in the currently chosen class"
+ | aClass | - | aClass messageCatIndex | aSymbol ifNil: [^ self]. (aClass := self selectedClassOrMetaClass) ifNil: [^ self]. + (aClass organization categoryOfElement: aSymbol) + ifNil: [^ self] + ifNotNil: [:category | + self + selectMessageCategoryNamed: category; + selectMessageNamed: aSymbol].! - messageCatIndex := aClass organization numberOfCategoryOfElement: aSymbol. - self messageCategoryListIndex: messageCatIndex + 1. - messageCatIndex = 0 ifTrue: [^ self]. - self messageListIndex: - ((aClass organization listAtCategoryNumber: messageCatIndex) - indexOf: aSymbol)!
Item was changed: ----- Method: CodeHolder>>spawnHierarchy (in category 'traits') ----- spawnHierarchy "Create and schedule a new hierarchy browser on the currently selected class or meta."
+ | newBrowser aSymbol selectedClassOrMetaClass | - | newBrowser aSymbol aBehavior messageCatIndex selectedClassOrMetaClass | (selectedClassOrMetaClass := self selectedClassOrMetaClass) ifNil: [^ self]. selectedClassOrMetaClass isTrait ifTrue: [^self]. newBrowser := HierarchyBrowser new initHierarchyForClass: selectedClassOrMetaClass. ((aSymbol := self selectedMessageName) notNil and: [(MessageSet isPseudoSelector: aSymbol) not]) + ifTrue: [newBrowser setSelector: aSymbol]. - ifTrue: - [aBehavior := selectedClassOrMetaClass. - messageCatIndex := aBehavior organization numberOfCategoryOfElement: aSymbol. - newBrowser messageCategoryListIndex: messageCatIndex + 1. - newBrowser messageListIndex: - ((aBehavior organization listAtCategoryNumber: messageCatIndex) indexOf: aSymbol)]. Browser openBrowserView: (newBrowser openSystemCatEditString: nil) label: newBrowser labelString. Smalltalk isMorphic ifTrue: ["this workaround only needed in morphic" newBrowser assureSelectionsShow]. ^ newBrowser.!
squeak-dev@lists.squeakfoundation.org