[squeak-dev] The Inbox: Tools-fbs.334.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Mar 30 20:43:52 UTC 2011


A new version of Tools was added to project The Inbox:
http://source.squeak.org/inbox/Tools-fbs.334.mcz

==================== Summary ====================

Name: Tools-fbs.334
Author: fbs
Time: 30 March 2011, 9:42:09.966 pm
UUID: acca9b1d-675e-f846-815e-eac885ca38ca
Ancestors: Tools-fbs.333

More "parallel rollout" of selectedMessageCategoryName, and #messageCategoryListIndex and #messageCategoryListIndex: now internally use the name.

=============== Diff against Tools-fbs.333 ===============

Item was changed:
  ----- Method: Browser>>buildMessageCategoryBrowserEditString: (in category 'message category functions') -----
  buildMessageCategoryBrowserEditString: aString 
  	"Create and schedule a message category browser for the currently 
  	selected	 message category. The initial text view contains the characters 
  	in aString."
  	"wod 6/24/1998: set newBrowser classListIndex so that it works whether the
  	receiver is a standard or a Hierarchy Browser."
  
  	| newBrowser |
  	^ self hasMessageCategorySelected
  		ifFalse: [ nil ]
  		ifTrue: 
  			[newBrowser := Browser new.
  			newBrowser selectSystemCategory: self selectedSystemCategory.
+ 			newBrowser selectClass: self selectedClass.
+ 			newBrowser metaClassIndicated: self metaClassIndicated.
+ 			newBrowser selectMessageCategoryNamed: self selectedMessageCategoryName.
- 			newBrowser classListIndex: (newBrowser classList indexOf: self selectedClassName).
- 			newBrowser metaClassIndicated: metaClassIndicated.
- 			newBrowser messageCategoryListIndex: messageCategoryListIndex.
  			newBrowser selectMessageNamed: self selectedMessageName.
  			self class openBrowserView: (newBrowser openMessageCatEditString: aString)
  				label: 'Message Category Browser (' , 
  						newBrowser selectedClassOrMetaClassName , ')'.
  			newBrowser.].!

Item was changed:
  ----- Method: Browser>>messageCategoryListIndex (in category 'message category list') -----
  messageCategoryListIndex
  	"Answer the index of the selected message category."
  
+ 	^self messageCategoryList indexOf: selectedMessageCategoryName ifAbsent: [0].!
- 	^messageCategoryListIndex!

Item was changed:
  ----- Method: Browser>>messageCategoryListIndex: (in category 'message category list') -----
  messageCategoryListIndex: anInteger
  	"Set the selected message category to be the one indexed by anInteger."
  
  	messageCategoryListIndex := anInteger.
  	selectedMessageCategoryName := nil.
+ 	self selectMessageCategoryNamed: (self messageCategoryList at: anInteger ifAbsent: [nil]).!
- 	selectedMessageName := nil.
- 	self changed: #messageCategorySelectionChanged.
- 	self changed: #messageCategoryListIndex. "update my selection"
- 	self changed: #messageList.
- 	self editSelection: (anInteger > 0
- 		ifTrue: [#newMessage]
- 		ifFalse: [self hasClassSelected
- 			ifTrue: [#editClass]
- 			ifFalse: [#newClass]]).
- 	contents := nil.
- 	self contentsChanged.!

Item was changed:
  ----- Method: Browser>>messageList (in category 'message list') -----
  messageList
  	"Answer an Array of the message selectors of the currently selected message category, provided that the messageCategoryListIndex is in proper range.  Otherwise, answer an empty Array  If messageCategoryListIndex is found to be larger than the number of categories (it happens!!), it is reset to zero."
  	| sel |
  	(sel := self messageCategoryListSelection) ifNil: 
  		[
  			^ self classOrMetaClassOrganizer
  				ifNil:		[Array new]
  				ifNotNil:	[self classOrMetaClassOrganizer allMethodSelectors]
  			"^ Array new"
  		].
  
  	^ sel = ClassOrganizer allCategory
  		ifTrue: 
  			[self classOrMetaClassOrganizer
  				ifNil:		[Array new]
  				ifNotNil:	[self classOrMetaClassOrganizer allMethodSelectors]]
  		ifFalse:
+ 			[(self classOrMetaClassOrganizer listAtCategoryNamed: self selectedMessageCategoryName )
+ 				ifNil: [messageCategoryListIndex := 0.  selectedMessageCategoryName := nil. Array new]]!
- 			[(self classOrMetaClassOrganizer listAtCategoryNumber: messageCategoryListIndex - 1)
- 				ifNil: [messageCategoryListIndex := 0.  Array new]]!

Item was changed:
  ----- Method: Browser>>selectClassNamed: (in category 'class list') -----
  selectClassNamed: aSymbolOrString
  	| className currentMessageCategoryName currentMessageName |
  	currentMessageCategoryName := [self selectedMessageCategoryName]
  										on: Error
  										do: [:ex| ex return: nil].
  	currentMessageName := [self selectedMessageName]
  								on: Error
  								do: [:ex| ex return: nil].
  								
  	selectedClassName := aSymbolOrString ifNotNil: [ aSymbolOrString asSymbol ].
  	self setClassOrganizer.
  
  	"Try to reselect the category and/or selector if the new class has them."
  	messageCategoryListIndex := self messageCategoryList
  										indexOf: currentMessageCategoryName
  										ifAbsent: [0].
+ 	selectedMessageCategoryName :=(self messageCategoryList includes: currentMessageCategoryName)
+ 		ifTrue: [currentMessageCategoryName]
+ 		ifFalse: [nil].
  	self selectMessageNamed: (self hasMessageCategorySelected
  		ifTrue: [ currentMessageName ]
  		ifFalse: [ nil ]).
  
  	self hasMessageSelected ifTrue:
  		[self editSelection: #editMessage] ifFalse:
  	[self hasMessageCategorySelected ifTrue:
  		[self editSelection: #newMessage] ifFalse:
  	[self classCommentIndicated
  		ifTrue: []
  		ifFalse: [self editSelection: (self hasClassSelected not
  					ifTrue: [(metaClassIndicated or: [ self hasSystemCategorySelected not ])
  						ifTrue: [#none]
  						ifFalse: [#newClass]]
  					ifFalse: [#editClass])]]].
  	contents := nil.
  	self selectedClass isNil
  		ifFalse: [className := self selectedClass name.
  					(RecentClasses includes: className)
  				ifTrue: [RecentClasses remove: className].
  			RecentClasses addFirst: className.
  			RecentClasses size > 16
  				ifTrue: [RecentClasses removeLast]].
  	self changed: #classSelectionChanged.
  	self changed: #classCommentText.
  	self changed: #classListIndex.	"update my selection"
  	self changed: #messageCategoryList.
  	self changed: #messageList.
  	self changed: #relabel.
  	self contentsChanged!

Item was changed:
  ----- Method: Browser>>selectMessageCategoryNamed: (in category 'message category list') -----
  selectMessageCategoryNamed: aSymbol 
  	"Given aSymbol, select the category with that name.  Do nothing if 
  	aSymbol doesn't exist."
+ 	selectedMessageCategoryName := aSymbol.
+ 	messageCategoryListIndex := aSymbol ifNil: [0] ifNotNil: [self messageCategoryList indexOf: aSymbol].
+ 	
+ 	selectedMessageName := nil.
+ 	self changed: #messageCategorySelectionChanged.
+ 	self changed: #messageCategoryListIndex. "update my selection"
+ 	self changed: #messageList.
+ 	self editSelection: (aSymbol notNil
+ 		ifTrue: [#newMessage]
+ 		ifFalse: [self hasClassSelected
+ 			ifTrue: [#editClass]
+ 			ifFalse: [#newClass]]).
+ 	contents := nil.
+ 	self contentsChanged.!
- 	self messageCategoryListIndex: (self messageCategoryList indexOf: aSymbol ifAbsent: [ 1])!

Item was changed:
  ----- Method: MessageSet>>compileMessage:notifying: (in category 'as yet unclassified') -----
  compileMessage: aText notifying: aController
  	"Compile the code that was accepted by the user, placing the compiled method into an appropriate message category.  Return true if the compilation succeeded, else false."
  	"Copied from Browser's version of sd 11/20/2005 21:26 because later versions remove messageListIndex."
  
+ 	| fallBackCategoryName fallBackCategoryIndex fallBackMethodIndex originalSelectorName result |
- 	| fallBackCategoryIndex fallBackMethodIndex originalSelectorName result |
  
  	self selectedMessageCategoryName ifNil:
  			[ self selectOriginalCategoryForCurrentMethod 	
  										ifFalse:["Select the '--all--' category"
  											self messageCategoryListIndex: 1]]. 
  
  
  	self selectedMessageCategoryName asSymbol = ClassOrganizer allCategory
  		ifTrue:
  			[ "User tried to save a method while the ALL category was selected"
  			fallBackCategoryIndex := messageCategoryListIndex.
+ 			fallBackCategoryName := selectedMessageCategoryName.
  			fallBackMethodIndex := messageListIndex.
  			editSelection == #newMessage
  				ifTrue:
  					[ "Select the 'as yet unclassified' category"
  					messageCategoryListIndex := 0.
+ 					selectedMessageCategoryName := nil.
  					(result := self defineMessageFrom: aText notifying: aController)
  						ifNil:
  							["Compilation failure:  reselect the original category & method"
  							messageCategoryListIndex := fallBackCategoryIndex.
+ 							selectedMessageCategoryName := fallBackCategoryName.
  							messageListIndex := fallBackMethodIndex]
  						ifNotNil:
  							[self setSelector: result]]
  				ifFalse:
  					[originalSelectorName := self selectedMessageName.
  					self setOriginalCategoryIndexForCurrentMethod.
  					messageListIndex := fallBackMethodIndex := self messageList indexOf: originalSelectorName.			
  					(result := self defineMessageFrom: aText notifying: aController)
  						ifNotNil:
  							[self setSelector: result]
  						ifNil:
  							[ "Compilation failure:  reselect the original category & method"
  							messageCategoryListIndex := fallBackCategoryIndex.
+ 							selectedMessageCategoryName := fallBackCategoryName.
  							messageListIndex := fallBackMethodIndex.
  							^ result notNil]].
  			self changed: #messageCategoryList.
  			^ result notNil]
  		ifFalse:
  			[ "User tried to save a method while the ALL category was NOT selected"
  			^ (self defineMessageFrom: aText notifying: aController) notNil]!




More information about the Squeak-dev mailing list