[Pkg] The Trunk: Tools-mt.537.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Mar 2 09:42:13 UTC 2015
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.!
More information about the Packages
mailing list