Initial support for senders/implementors menu for Java invocations.
--- a/SmallSense__CodeNavigationService.st Tue Sep 24 23:02:47 2013 +0100
+++ b/SmallSense__CodeNavigationService.st Wed Sep 25 10:28:40 2013 +0100
@@ -16,6 +16,7 @@
privateIn:CodeNavigationService
!
+
!CodeNavigationService class methodsFor:'accessing'!
label
@@ -27,6 +28,23 @@
"Modified: / 23-09-2013 / 10:27:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!CodeNavigationService methodsFor:'accessing'!
+
+browser
+ ^ codeView browser.
+
+ "Created: / 24-09-2013 / 23:38:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+environment
+ | browser |
+
+ browser := self browser.
+ ^ browser notNil ifTrue:[browser environment] ifFalse:[Smalltalk]
+
+ "Created: / 24-09-2013 / 23:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!CodeNavigationService methodsFor:'event handling'!
button1Press
@@ -109,10 +127,25 @@
].
"Created: / 23-09-2013 / 03:52:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+showMenu: menu
+ menuShown := menu.
+ menuShown notNil ifTrue:[
+ menuShown showAtPointer
+ ].
+
+ "Created: / 24-09-2013 / 23:43:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CodeNavigationService::Navigator methodsFor:'accessing'!
+browser
+ ^ service browser
+
+ "Created: / 24-09-2013 / 23:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
button
^ button
!
@@ -121,6 +154,12 @@
button := something.
!
+environment
+ ^ service environment
+
+ "Created: / 24-09-2013 / 23:37:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
service
^ service
!
@@ -139,6 +178,31 @@
!CodeNavigationService::Navigator methodsFor:'navigation - Java'!
+navigateToMessageSend: node
+ | binding className selector toolbox |
+
+ binding := node binding .
+ binding isNil ifTrue:[ ^ nil ].
+ className := binding declaringClass compoundName asStringWith: $/.
+ selector := binding selector , binding signature.
+
+ toolbox := JavaToolbox new
+ browser: self browser;
+ environment: self environment;
+ yourself.
+ button == 1 ifTrue:[
+ service showMenu: (toolbox implementorMenuFor: selector inClassNamed: className).
+ ^ self.
+ ].
+ button == 1 ifTrue:[
+ service showMenu: (toolbox sendersMenuFor: selector inClassNamed: className).
+ ^ self.
+ ].
+
+ "Created: / 24-09-2013 / 23:10:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 25-09-2013 / 10:01:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
navigateToTypeReference: node
"Created: / 24-09-2013 / 10:16:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -171,3 +235,10 @@
"Created: / 24-09-2013 / 10:06:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!CodeNavigationService class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+