Tools__NewSystemBrowser.st
changeset 10842 f1049d39d3da
parent 10838 e3d3cace0110
child 10843 f3ccbff96227
--- a/Tools__NewSystemBrowser.st	Fri Oct 21 14:45:09 2011 +0200
+++ b/Tools__NewSystemBrowser.st	Wed Oct 26 18:51:11 2011 +0200
@@ -14,38 +14,38 @@
 "{ NameSpace: Tools }"
 
 SystemBrowser subclass:#NewSystemBrowser
-        instanceVariableNames:'navigationState bufferNameList selectedBuffer buffers
-                bufferUsageOrder browserCanvas immediateUpdate showClassPackages
-                lastMethodCategory lastMethodMoveClass browserCanvasType
-                syntaxColoringProcessRunning syntaxColoringProcess
-                methodInfoProcess browsletShowHideLabelHolder browserPageCanvas'
-        classVariableNames:'LastNewProtocols LastProtocolRenames LastCategoryRenames
-                LastCategoryRenameOld LastCategoryRenameNew LastProjectMoves
-                LastNameSpaceMove LastMethodMoveOrCopyTargetClass
-                LastSearchPatterns LastClassFilterBlockString
-                LastMethodFilterBlockString LastBreakPointConditionString
-                LastIndividualChecks LastAcceptPackage LastVariableRenames
-                LastVisitorClassName LastTemporaryVariableName BookMarks
-                FindHistory CheckForInstancesWhenRemovingClasses
-                SynchronousUpdate DoubleClickIsOpenBrowser
-                ShowMethodTemplateWhenProtocolIsSelected
-                DefaultShowMethodTemplate DefaultShowMethodInheritance
-                DefaultEmphasizeUnloadedClasses DefaultImmediateSyntaxColoring
-                DefaultImmediateExplaining DefaultSyntaxColoring
-                DefaultToolBarVisible DefaultCodeInfoVisible
-                DefaultShortNameInTabs DefaultHideUnloadedClasses
-                DefaultMarkApplications DefaultAutoFormat
-                DefaultShowMethodComplexity DefaultShowMethodTypeIcon
-                DefaultShowSpecialResourceEditors SharedMethodCategoryCache
-                LastMethodProcessingBlockString LastLoadedPackages
-                DefaultShortAllClassesInNameSpaceOrganisation LastTag
-                LastBaseVersionTag DefaultShowPseudoProtocols
-                DefaultShowMultitabMode LastRenamedOld LastRenamedNew
-                LastImportedPackage LastLintRules NewNavigationHistory
-                DefaultSortByNameAndInheritance LastLiteralReplacementType
-                LastLiteralReplacementNewName LastLiteralReplacementOldLiteral'
-        poolDictionaries:''
-        category:'Interface-Browsers-New'
+	instanceVariableNames:'navigationState bufferNameList selectedBuffer buffers
+		bufferUsageOrder browserCanvas immediateUpdate showClassPackages
+		lastMethodCategory lastMethodMoveClass browserCanvasType
+		syntaxColoringProcessRunning syntaxColoringProcess
+		methodInfoProcess browsletShowHideLabelHolder browserPageCanvas'
+	classVariableNames:'LastNewProtocols LastProtocolRenames LastCategoryRenames
+		LastCategoryRenameOld LastCategoryRenameNew LastProjectMoves
+		LastNameSpaceMove LastMethodMoveOrCopyTargetClass
+		LastSearchPatterns LastClassFilterBlockString
+		LastMethodFilterBlockString LastBreakPointConditionString
+		LastIndividualChecks LastAcceptPackage LastVariableRenames
+		LastVisitorClassName LastTemporaryVariableName BookMarks
+		FindHistory CheckForInstancesWhenRemovingClasses
+		SynchronousUpdate DoubleClickIsOpenBrowser
+		ShowMethodTemplateWhenProtocolIsSelected
+		DefaultShowMethodTemplate DefaultShowMethodInheritance
+		DefaultEmphasizeUnloadedClasses DefaultImmediateSyntaxColoring
+		DefaultImmediateExplaining DefaultSyntaxColoring
+		DefaultToolBarVisible DefaultCodeInfoVisible
+		DefaultShortNameInTabs DefaultHideUnloadedClasses
+		DefaultMarkApplications DefaultAutoFormat
+		DefaultShowMethodComplexity DefaultShowMethodTypeIcon
+		DefaultShowSpecialResourceEditors SharedMethodCategoryCache
+		LastMethodProcessingBlockString LastLoadedPackages
+		DefaultShortAllClassesInNameSpaceOrganisation LastTag
+		LastBaseVersionTag DefaultShowPseudoProtocols
+		DefaultShowMultitabMode LastRenamedOld LastRenamedNew
+		LastImportedPackage LastLintRules NewNavigationHistory
+		DefaultSortByNameAndInheritance LastLiteralReplacementType
+		LastLiteralReplacementNewName LastLiteralReplacementOldLiteral'
+	poolDictionaries:''
+	category:'Interface-Browsers-New'
 !
 
 !NewSystemBrowser class methodsFor:'documentation'!
@@ -11775,6 +11775,12 @@
             submenuChannel: implementedMessagesMenu
           )
          (MenuItem
+            label: 'Globals'
+            translateLabel: true
+            "/ isVisible: hasSingleMethodSelectedHolder
+            submenuChannel: globalReferencesMenu
+          )
+         (MenuItem
             label: 'String Search...'
             itemValue: browseMenuMethodsWithString
             translateLabel: true
@@ -11790,6 +11796,8 @@
         nil
         nil
       )
+
+    "Modified: / 26-10-2011 / 18:08:38 / cg"
 !
 
 selectorMenuSpawnSlice
@@ -16816,6 +16824,7 @@
     "Created: / 24.2.2000 / 23:28:06 / cg"
 ! !
 
+
 !NewSystemBrowser methodsFor:'aspects-organization'!
 
 categoryMenuVisible
@@ -20123,6 +20132,7 @@
     ^ UserPreferences current useSearchBarInBrowser or:[self codeView searchBarActionBlock notNil]
 ! !
 
+
 !NewSystemBrowser methodsFor:'change & update'!
 
 categorySelectionChanged
@@ -28003,6 +28013,12 @@
     ]
 !
 
+spawnBrowserOnClass:cls
+    self spawnClassBrowserFor:(Array with:cls) in:#newBuffer
+
+    "Created: / 26-10-2011 / 18:28:21 / cg"
+!
+
 spawnClassBrowserFor:classes in:where
     "browse selected class(es);
         where is: #newBrowser - open a new browser showing the classes
@@ -28052,7 +28068,7 @@
         meta := singleClass isMeta.
         doSelect := true.
     ] ifFalse:[
-        spec := #multipleClassBrowserSpec.
+        spec := #fullBrowserSpec. "/#multipleClassBrowserSpec.
         meta := self meta value ? false.
     ].
 
@@ -28090,7 +28106,7 @@
             brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
         ]
 
-    "Modified: / 1.3.2000 / 11:54:08 / cg"
+    "Modified: / 26-10-2011 / 18:49:25 / cg"
 !
 
 spawnClassBrowserForSearch:searchBlock sortBy:sortByWhat in:openHow label:lbl
@@ -42018,6 +42034,7 @@
     "Modified: / 25-06-2010 / 10:08:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+
 !NewSystemBrowser methodsFor:'menu actions-variables'!
 
 browseVarRefsOrModsWithTitle:browserTitle boxTitle:boxTitle variables:varType access:accessType all:browseAll
@@ -43841,6 +43858,49 @@
     ].
 !
 
+globalReferencesMenu
+    "a menu allowing to browse the referenced globals (typically: classes) of the
+     selected method(s)"
+
+    |classes m|
+
+    classes := Set new.
+
+    self selectedMethodsDo:[:m |
+        m literalsDo:[:lit |
+            |cls ns|
+
+            lit isSymbol ifTrue:[
+                (((cls := Smalltalk at:lit) notNil and:[ cls isBehavior ])
+                or:[ (ns := m mclass nameSpace) notNil
+                     and:[ ns ~= Smalltalk
+                     and:[ (cls := ns at:lit) notNil  and:[ cls isBehavior ]]]])
+                ifTrue:[
+                    classes add:cls
+                ]
+            ]
+        ].
+    ].
+    classes isEmpty ifTrue:[
+        ^ nil
+    ].
+
+    classes := classes asOrderedCollection sort:[:a :b | a name < b name].
+
+    m := Menu new.
+    classes do:[:each |
+        |item|
+
+        item := MenuItem label:each name.   
+        item value:#'spawnBrowserOnClass:'.
+        item argument:each.
+        m addItem:item.
+    ].
+    ^ m
+
+    "Created: / 26-10-2011 / 18:15:01 / cg"
+!
+
 goBackInGlobalHistoryMenu
     <resource: #programMenu>
 
@@ -48884,6 +48944,7 @@
     ^ navigationState projectListApplication
 ! !
 
+
 !NewSystemBrowser methodsFor:'private-history'!
 
 lastSearchPatterns
@@ -54031,11 +54092,11 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1644 2011-10-19 14:53:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1645 2011-10-26 16:51:11 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1644 2011-10-19 14:53:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1645 2011-10-26 16:51:11 cg Exp $'
 !
 
 version_SVN