[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