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

commits at source.squeak.org commits at source.squeak.org
Thu Mar 17 23:05:25 UTC 2011


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

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

Name: Tools-fbs.322
Author: fbs
Time: 17 March 2011, 11:04:56.212 pm
UUID: 1d3fc4fc-4947-1c44-af38-d1c53d0b5703
Ancestors: Tools-fbs.321

And now we can refactor selectOriginalCategoryForCurrentMethod!

=============== Diff against Tools-fbs.321 ===============

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].
+ 	self selectMessageNamed: (self hasMessageCategorySelected
+ 		ifTrue: [ currentMessageName ]
+ 		ifFalse: [ nil ]).
- 	messageListIndex := messageCategoryListIndex = 0
- 							ifTrue: [0]
- 							ifFalse: [self messageList
- 										indexOf: currentMessageName
- 										ifAbsent: [0]].
  
  	self hasMessageSelected ifTrue:
  		[self editSelection: #editMessage] ifFalse:
+ 	[self messageCategoryListIndex ~= 0 ifTrue:
- 	[messageCategoryListIndex ~= 0 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>>selectOriginalCategoryForCurrentMethod (in category 'message category list') -----
  selectOriginalCategoryForCurrentMethod
  	"private - Select the message category for the current method. 
  	 
  	 Note:  This should only be called when somebody tries to save  
  	 a method that they are modifying while ALL is selected. 
  	 
  	 Returns: true on success, false on failure."
  	| aSymbol selectorName |
  	aSymbol := self categoryOfCurrentMethod.
  	selectorName := self selectedMessageName.
  	(aSymbol notNil and: [aSymbol ~= ClassOrganizer allCategory])
  		ifTrue: 
  			[messageCategoryListIndex := (self messageCategoryList indexOf: aSymbol).
  			messageListIndex := (self messageList indexOf: selectorName).
+ 			selectedMessageName := selectorName.
  			self changed: #messageCategorySelectionChanged.
  			self changed: #messageCategoryListIndex.	"update my selection"
  			self changed: #messageList.
  			self changed: #messageListIndex.
  			^ true].
  	^ false!




More information about the Squeak-dev mailing list