changed:5 methods
construct a nice messages menu - even if no method is selected.
--- a/NewSystemBrowser.st Wed Apr 14 10:54:54 2010 +0200
+++ b/NewSystemBrowser.st Wed Apr 14 21:24:15 2010 +0200
@@ -9276,7 +9276,7 @@
(MenuItem
label: 'Implementors'
translateLabel: true
- isVisible: hasSingleMethodSelectedHolder
+ "/ isVisible: hasSingleMethodSelectedHolder
submenuChannel: implementedMessagesMenu
)
(MenuItem
@@ -35528,13 +35528,15 @@
!
implementedMessagesMenu
- ^ self
- messagesMenuFor:#'spawnBrowserOnAllImplementorsOf:'
- withSenderChain:false
- withImplementorChain:true
- withLocalSenders:false
- withLocalImplementors:true
- selfSendsOnly:false
+ ^ [
+ self
+ messagesMenuFor:#'spawnBrowserOnAllImplementorsOf:'
+ withSenderChain:false
+ withImplementorChain:true
+ withLocalSenders:false
+ withLocalImplementors:true
+ selfSendsOnly:false
+ ]
"Modified: / 05-09-2006 / 10:34:10 / cg"
!
@@ -35578,13 +35580,15 @@
!
messagesMenuFor:actionSelector withSenderChain:withSenderChain withImplementorChain:withImplementorChain selfSendsOnly:selfSendsOnly
- ^ self
- messagesMenuFor:actionSelector
- withSenderChain:withSenderChain
- withImplementorChain:withImplementorChain
- withLocalSenders:false
- withLocalImplementors:false
- selfSendsOnly:selfSendsOnly
+ ^ [
+ self
+ messagesMenuFor:actionSelector
+ withSenderChain:withSenderChain
+ withImplementorChain:withImplementorChain
+ withLocalSenders:false
+ withLocalImplementors:false
+ selfSendsOnly:selfSendsOnly
+ ]
"Modified: / 05-09-2006 / 10:33:05 / cg"
!
@@ -35592,19 +35596,18 @@
messagesMenuFor:actionSelector withSenderChain:withSenderChain withImplementorChain:withImplementorChain withLocalSenders:withLocalSenders withLocalImplementors:withLocalImplementors selfSendsOnly:selfSendsOnly
<resource: #programMenu >
- ^ [
- |m mthd mSel contractedSelector item l cut|
-
- m := Menu new.
-
- mthd := self theSingleSelectedMethod.
- (mthd notNil and:[ (mSel := mthd selector) notNil]) ifTrue:[
- contractedSelector := mSel contractTo:80.
-
- item := MenuItem label:(' ' , contractedSelector , ' '). "/ ' ' is a kludge - to allow '-' selector
- item value:actionSelector.
- item argument:mSel.
- m addItem:item.
+ |m mthd mSel contractedSelector item l cut methods allMessagesSent|
+
+ m := Menu new.
+
+ mthd := self theSingleSelectedMethod.
+ (mthd notNil and:[ (mSel := mthd selector) notNil]) ifTrue:[
+ contractedSelector := mSel contractTo:80.
+
+ item := MenuItem label:(' ' , contractedSelector , ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:mSel.
+ m addItem:item.
"/ true "withInstanceProtocolOnly" ifTrue:[
"/ item := MenuItem label:(resources string:' %1 - Instance Protocol Only' with:contractedSelector).
@@ -35619,42 +35622,42 @@
"/ m addItem:item.
"/ ].
- (withLocalSenders | withSenderChain | withLocalImplementors | withImplementorChain) ifTrue:[
- m addSeparator.
- ].
-
- withLocalSenders ifTrue:[
- "/ item := MenuItem label:(resources string:' %1 - Local Senders' with:contractedSelector).
- item := MenuItem label:(resources string:'Local Senders of %1' with:contractedSelector).
- item value:#spawnLocalSendersBuffer.
- m addItem:item.
- ].
- withSenderChain ifTrue:[
- "/ item := MenuItem label:(resources string:' %1 - Sender Chain' with:contractedSelector).
- item := MenuItem label:(resources string:'Sender Chain of %1' with:contractedSelector).
- item value:#spawnSenderChainBuffer.
- m addItem:item.
- ].
- withLocalImplementors ifTrue:[
- "/ item := MenuItem label:(resources string:' %1 - Local Implementors' with:contractedSelector).
- item := MenuItem label:(resources string:'Local Implementors of %1' with:contractedSelector).
- item value:#spawnLocalImplementorsBuffer.
- m addItem:item.
- ].
- withImplementorChain ifTrue:[
- item := MenuItem label:(resources string:'Implementor Chain of %1' with:contractedSelector).
- item value:#spawnImplementorChainBuffer.
- m addItem:item.
- ].
-
- selfSendsOnly ifTrue:[
- l := mthd messagesSentToSelf.
- ] ifFalse:[
- l := mthd messagesSent.
- ].
- l := l asSortedCollection.
- l size > 0 ifTrue:[
- m addSeparator.
+ (withLocalSenders | withSenderChain | withLocalImplementors | withImplementorChain) ifTrue:[
+ m addSeparator.
+ ].
+
+ withLocalSenders ifTrue:[
+ "/ item := MenuItem label:(resources string:' %1 - Local Senders' with:contractedSelector).
+ item := MenuItem label:(resources string:'Local Senders of %1' with:contractedSelector).
+ item value:#spawnLocalSendersBuffer.
+ m addItem:item.
+ ].
+ withSenderChain ifTrue:[
+ "/ item := MenuItem label:(resources string:' %1 - Sender Chain' with:contractedSelector).
+ item := MenuItem label:(resources string:'Sender Chain of %1' with:contractedSelector).
+ item value:#spawnSenderChainBuffer.
+ m addItem:item.
+ ].
+ withLocalImplementors ifTrue:[
+ "/ item := MenuItem label:(resources string:' %1 - Local Implementors' with:contractedSelector).
+ item := MenuItem label:(resources string:'Local Implementors of %1' with:contractedSelector).
+ item value:#spawnLocalImplementorsBuffer.
+ m addItem:item.
+ ].
+ withImplementorChain ifTrue:[
+ item := MenuItem label:(resources string:'Implementor Chain of %1' with:contractedSelector).
+ item value:#spawnImplementorChainBuffer.
+ m addItem:item.
+ ].
+
+ selfSendsOnly ifTrue:[
+ l := mthd messagesSentToSelf.
+ ] ifFalse:[
+ l := mthd messagesSent.
+ ].
+ l := l asSortedCollection.
+ l size > 0 ifTrue:[
+ m addSeparator.
"
(l size > 30) ifTrue:[
@@ -35672,12 +35675,12 @@
l := l copyTo:30
].
"
- l do:[:eachMessage |
- item := MenuItem label:(' ' , (eachMessage contractTo:100), ' '). "/ ' ' is a kludge - to allow '-' selector
- item value:actionSelector.
- item argument:eachMessage asSymbol.
- m addItem:item.
- ].
+ l do:[:eachMessage |
+ item := MenuItem label:(' ' , (eachMessage contractTo:100), ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:eachMessage asSymbol.
+ m addItem:item.
+ ].
"
cut ifTrue:[
@@ -35685,10 +35688,48 @@
m addItem:(MenuItem label:'<< more items ignored >>').
]
"
- ]
- ].
- m
- ].
+ ]
+ ] ifFalse:[
+ allMessagesSent := Set new.
+
+ "/ not exactly one method selected;
+ "/ generate a menu for all selected method's implementors and sent messages.
+ methods := self selectedMethods value.
+ methods isEmptyOrNil ifTrue:[
+ methods := OrderedCollection new.
+ self selectedClassesDo:[:cls |
+ cls methodsDo:[:eachMethod | methods add:eachMethod].
+ ].
+ ].
+ methods do:[:eachMethod |
+ mSel := eachMethod selector.
+ contractedSelector := mSel contractTo:80.
+
+ item := MenuItem label:(' ' , contractedSelector , ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:mSel.
+ m addItem:item.
+
+ selfSendsOnly ifTrue:[
+ allMessagesSent addAll:(eachMethod messagesSentToSelf).
+ ] ifFalse:[
+ allMessagesSent addAll:(eachMethod messagesSent).
+ ].
+ ].
+
+ allMessagesSent := allMessagesSent asSortedCollection.
+ allMessagesSent size > 0 ifTrue:[
+ m addSeparator.
+ allMessagesSent do:[:eachMessage |
+ item := MenuItem label:(' ' , (eachMessage contractTo:100), ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:eachMessage asSymbol.
+ m addItem:item.
+ ].
+ ].
+ ].
+
+ ^ m
"Created: / 05-09-2006 / 10:32:43 / cg"
!
@@ -35783,13 +35824,15 @@
!
sentMessagesMenu
- ^ self
- messagesMenuFor:#'spawnBrowserOnAllSendersOf:'
- withSenderChain:true "(self window sensor ctrlDown)"
- withImplementorChain:false
- withLocalSenders:true
- withLocalImplementors:false
- selfSendsOnly:false
+ ^ [
+ self
+ messagesMenuFor:#'spawnBrowserOnAllSendersOf:'
+ withSenderChain:true "(self window sensor ctrlDown)"
+ withImplementorChain:false
+ withLocalSenders:true
+ withLocalImplementors:false
+ selfSendsOnly:false
+ ]
"Modified: / 05-09-2006 / 10:33:41 / cg"
!
@@ -43933,11 +43976,11 @@
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.1447 2010-03-29 14:26:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.1448 2010-04-14 19:24:15 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.1447 2010-03-29 14:26:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.1448 2010-04-14 19:24:15 cg Exp $'
! !
NewSystemBrowser initialize!
--- a/Tools__NewSystemBrowser.st Wed Apr 14 10:54:54 2010 +0200
+++ b/Tools__NewSystemBrowser.st Wed Apr 14 21:24:15 2010 +0200
@@ -9276,7 +9276,7 @@
(MenuItem
label: 'Implementors'
translateLabel: true
- isVisible: hasSingleMethodSelectedHolder
+ "/ isVisible: hasSingleMethodSelectedHolder
submenuChannel: implementedMessagesMenu
)
(MenuItem
@@ -35528,13 +35528,15 @@
!
implementedMessagesMenu
- ^ self
- messagesMenuFor:#'spawnBrowserOnAllImplementorsOf:'
- withSenderChain:false
- withImplementorChain:true
- withLocalSenders:false
- withLocalImplementors:true
- selfSendsOnly:false
+ ^ [
+ self
+ messagesMenuFor:#'spawnBrowserOnAllImplementorsOf:'
+ withSenderChain:false
+ withImplementorChain:true
+ withLocalSenders:false
+ withLocalImplementors:true
+ selfSendsOnly:false
+ ]
"Modified: / 05-09-2006 / 10:34:10 / cg"
!
@@ -35578,13 +35580,15 @@
!
messagesMenuFor:actionSelector withSenderChain:withSenderChain withImplementorChain:withImplementorChain selfSendsOnly:selfSendsOnly
- ^ self
- messagesMenuFor:actionSelector
- withSenderChain:withSenderChain
- withImplementorChain:withImplementorChain
- withLocalSenders:false
- withLocalImplementors:false
- selfSendsOnly:selfSendsOnly
+ ^ [
+ self
+ messagesMenuFor:actionSelector
+ withSenderChain:withSenderChain
+ withImplementorChain:withImplementorChain
+ withLocalSenders:false
+ withLocalImplementors:false
+ selfSendsOnly:selfSendsOnly
+ ]
"Modified: / 05-09-2006 / 10:33:05 / cg"
!
@@ -35592,19 +35596,18 @@
messagesMenuFor:actionSelector withSenderChain:withSenderChain withImplementorChain:withImplementorChain withLocalSenders:withLocalSenders withLocalImplementors:withLocalImplementors selfSendsOnly:selfSendsOnly
<resource: #programMenu >
- ^ [
- |m mthd mSel contractedSelector item l cut|
-
- m := Menu new.
-
- mthd := self theSingleSelectedMethod.
- (mthd notNil and:[ (mSel := mthd selector) notNil]) ifTrue:[
- contractedSelector := mSel contractTo:80.
-
- item := MenuItem label:(' ' , contractedSelector , ' '). "/ ' ' is a kludge - to allow '-' selector
- item value:actionSelector.
- item argument:mSel.
- m addItem:item.
+ |m mthd mSel contractedSelector item l cut methods allMessagesSent|
+
+ m := Menu new.
+
+ mthd := self theSingleSelectedMethod.
+ (mthd notNil and:[ (mSel := mthd selector) notNil]) ifTrue:[
+ contractedSelector := mSel contractTo:80.
+
+ item := MenuItem label:(' ' , contractedSelector , ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:mSel.
+ m addItem:item.
"/ true "withInstanceProtocolOnly" ifTrue:[
"/ item := MenuItem label:(resources string:' %1 - Instance Protocol Only' with:contractedSelector).
@@ -35619,42 +35622,42 @@
"/ m addItem:item.
"/ ].
- (withLocalSenders | withSenderChain | withLocalImplementors | withImplementorChain) ifTrue:[
- m addSeparator.
- ].
-
- withLocalSenders ifTrue:[
- "/ item := MenuItem label:(resources string:' %1 - Local Senders' with:contractedSelector).
- item := MenuItem label:(resources string:'Local Senders of %1' with:contractedSelector).
- item value:#spawnLocalSendersBuffer.
- m addItem:item.
- ].
- withSenderChain ifTrue:[
- "/ item := MenuItem label:(resources string:' %1 - Sender Chain' with:contractedSelector).
- item := MenuItem label:(resources string:'Sender Chain of %1' with:contractedSelector).
- item value:#spawnSenderChainBuffer.
- m addItem:item.
- ].
- withLocalImplementors ifTrue:[
- "/ item := MenuItem label:(resources string:' %1 - Local Implementors' with:contractedSelector).
- item := MenuItem label:(resources string:'Local Implementors of %1' with:contractedSelector).
- item value:#spawnLocalImplementorsBuffer.
- m addItem:item.
- ].
- withImplementorChain ifTrue:[
- item := MenuItem label:(resources string:'Implementor Chain of %1' with:contractedSelector).
- item value:#spawnImplementorChainBuffer.
- m addItem:item.
- ].
-
- selfSendsOnly ifTrue:[
- l := mthd messagesSentToSelf.
- ] ifFalse:[
- l := mthd messagesSent.
- ].
- l := l asSortedCollection.
- l size > 0 ifTrue:[
- m addSeparator.
+ (withLocalSenders | withSenderChain | withLocalImplementors | withImplementorChain) ifTrue:[
+ m addSeparator.
+ ].
+
+ withLocalSenders ifTrue:[
+ "/ item := MenuItem label:(resources string:' %1 - Local Senders' with:contractedSelector).
+ item := MenuItem label:(resources string:'Local Senders of %1' with:contractedSelector).
+ item value:#spawnLocalSendersBuffer.
+ m addItem:item.
+ ].
+ withSenderChain ifTrue:[
+ "/ item := MenuItem label:(resources string:' %1 - Sender Chain' with:contractedSelector).
+ item := MenuItem label:(resources string:'Sender Chain of %1' with:contractedSelector).
+ item value:#spawnSenderChainBuffer.
+ m addItem:item.
+ ].
+ withLocalImplementors ifTrue:[
+ "/ item := MenuItem label:(resources string:' %1 - Local Implementors' with:contractedSelector).
+ item := MenuItem label:(resources string:'Local Implementors of %1' with:contractedSelector).
+ item value:#spawnLocalImplementorsBuffer.
+ m addItem:item.
+ ].
+ withImplementorChain ifTrue:[
+ item := MenuItem label:(resources string:'Implementor Chain of %1' with:contractedSelector).
+ item value:#spawnImplementorChainBuffer.
+ m addItem:item.
+ ].
+
+ selfSendsOnly ifTrue:[
+ l := mthd messagesSentToSelf.
+ ] ifFalse:[
+ l := mthd messagesSent.
+ ].
+ l := l asSortedCollection.
+ l size > 0 ifTrue:[
+ m addSeparator.
"
(l size > 30) ifTrue:[
@@ -35672,12 +35675,12 @@
l := l copyTo:30
].
"
- l do:[:eachMessage |
- item := MenuItem label:(' ' , (eachMessage contractTo:100), ' '). "/ ' ' is a kludge - to allow '-' selector
- item value:actionSelector.
- item argument:eachMessage asSymbol.
- m addItem:item.
- ].
+ l do:[:eachMessage |
+ item := MenuItem label:(' ' , (eachMessage contractTo:100), ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:eachMessage asSymbol.
+ m addItem:item.
+ ].
"
cut ifTrue:[
@@ -35685,10 +35688,48 @@
m addItem:(MenuItem label:'<< more items ignored >>').
]
"
- ]
- ].
- m
- ].
+ ]
+ ] ifFalse:[
+ allMessagesSent := Set new.
+
+ "/ not exactly one method selected;
+ "/ generate a menu for all selected method's implementors and sent messages.
+ methods := self selectedMethods value.
+ methods isEmptyOrNil ifTrue:[
+ methods := OrderedCollection new.
+ self selectedClassesDo:[:cls |
+ cls methodsDo:[:eachMethod | methods add:eachMethod].
+ ].
+ ].
+ methods do:[:eachMethod |
+ mSel := eachMethod selector.
+ contractedSelector := mSel contractTo:80.
+
+ item := MenuItem label:(' ' , contractedSelector , ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:mSel.
+ m addItem:item.
+
+ selfSendsOnly ifTrue:[
+ allMessagesSent addAll:(eachMethod messagesSentToSelf).
+ ] ifFalse:[
+ allMessagesSent addAll:(eachMethod messagesSent).
+ ].
+ ].
+
+ allMessagesSent := allMessagesSent asSortedCollection.
+ allMessagesSent size > 0 ifTrue:[
+ m addSeparator.
+ allMessagesSent do:[:eachMessage |
+ item := MenuItem label:(' ' , (eachMessage contractTo:100), ' '). "/ ' ' is a kludge - to allow '-' selector
+ item value:actionSelector.
+ item argument:eachMessage asSymbol.
+ m addItem:item.
+ ].
+ ].
+ ].
+
+ ^ m
"Created: / 05-09-2006 / 10:32:43 / cg"
!
@@ -35783,13 +35824,15 @@
!
sentMessagesMenu
- ^ self
- messagesMenuFor:#'spawnBrowserOnAllSendersOf:'
- withSenderChain:true "(self window sensor ctrlDown)"
- withImplementorChain:false
- withLocalSenders:true
- withLocalImplementors:false
- selfSendsOnly:false
+ ^ [
+ self
+ messagesMenuFor:#'spawnBrowserOnAllSendersOf:'
+ withSenderChain:true "(self window sensor ctrlDown)"
+ withImplementorChain:false
+ withLocalSenders:true
+ withLocalImplementors:false
+ selfSendsOnly:false
+ ]
"Modified: / 05-09-2006 / 10:33:41 / cg"
!
@@ -43933,11 +43976,11 @@
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1447 2010-03-29 14:26:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1448 2010-04-14 19:24:15 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1447 2010-03-29 14:26:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1448 2010-04-14 19:24:15 cg Exp $'
! !
NewSystemBrowser initialize!