[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
|