Tools__SearchDialog.st
branchjv
changeset 12205 f210b6224ef0
parent 12170 6c9c4b7981ee
child 12229 5c129972b1fd
--- a/Tools__SearchDialog.st	Wed Mar 21 14:05:42 2012 +0000
+++ b/Tools__SearchDialog.st	Wed Mar 21 17:50:14 2012 +0000
@@ -241,7 +241,7 @@
             ].
             sel := sel string.
 
-            browser rememberSearchPattern:sel.
+            (browser ? SystemBrowser) rememberSearchPattern:sel.
             searchWhat == #globalName ifTrue:[ 
                 LastGlobalSearched := sel.
             ] ifFalse:[
@@ -260,7 +260,7 @@
         ].
     ].
     where isNil ifTrue:[ 
-        browser warn:'No class(es) for search'.
+        (browser ? Dialog) warn:'No class(es) for search'.
         ^ self.
     ].
     self getClassesAndMethodsFor:where.
@@ -283,13 +283,13 @@
     classes size == 0 ifTrue:[
         classes := nil.
         methods size == 0 ifTrue:[ 
-            browser warn:'No class(es) given for search.'.
+            (browser ? Dialog) warn:'No class(es) given for search.'.
             ^ self.
         ].
     ] ifFalse:[
         classes := classes asOrderedCollection.
         methods size ~~ 0 ifTrue:[ 
-            browser warn:'oops'.
+            (browser ? Dialog) warn:'oops'.
             methods := nil.
         ].
     ].
@@ -319,7 +319,7 @@
         aBlock value.
     ]
 
-    "Modified: / 04-08-2011 / 23:18:42 / cg"
+    "Modified: / 14-02-2012 / 14:12:49 / cg"
 !
 
 setupToAskForMethodSearchTitle:title forBrowser:brwsrArg searchWhat:searchWhatArg 
@@ -335,25 +335,29 @@
     searchWhat := searchWhatArg.
 
     withTextEntry := withTextEntryArg.
-    browser := brwsrArg.
-    resources := browser resources.
+
+    (browser := brwsrArg) isNil ifTrue:[
+        resources := NewSystemBrowser classResources.
+    ] ifFalse:[
+        resources := browser resources.
+        selectedClasses := browser selectedClasses value.
+        selectedCategories := browser selectedCategoriesValue.
+        selectedCategories := selectedCategories reject:[:cat | NavigatorModel isPseudoCategory:cat].
+        selectedMethods := browser selectedMethods value.
+        currentClass := browser theSingleSelectedClass.
+        currentClassCategory := browser theSingleSelectedCategory.
+        currentPackage := browser theSingleSelectedProject.
+        currentClass isNil ifTrue:[
+            browser hasMethodSelected ifTrue:[
+                currentClass := selectedMethods first mclass.
+                "/ selectedClasses := (selectedMethods collect:[:each | each mclass ]) asIdentitySet.
+                "/ selectedClasses := selectedClasses select:[:each | each notNil ].
+            ].
+        ].
+    ].
 
     (self addTextLabel:(resources stringWithCRs:title)) adjust:#left.
 
-    selectedClasses := browser selectedClasses value.
-    selectedCategories := browser selectedCategoriesValue.
-    selectedCategories := selectedCategories reject:[:cat | NavigatorModel isPseudoCategory:cat].
-    selectedMethods := browser selectedMethods value.
-    currentClass := browser theSingleSelectedClass.
-    currentClassCategory := browser theSingleSelectedCategory.
-    currentPackage := browser theSingleSelectedProject.
-    currentClass isNil ifTrue:[
-        browser hasMethodSelected ifTrue:[
-            currentClass := selectedMethods first mclass.
-            "/ selectedClasses := (selectedMethods collect:[:each | each mclass ]) asIdentitySet.
-            "/ selectedClasses := selectedClasses select:[:each | each notNil ].
-        ].
-    ].
     currentClass notNil ifTrue:[
         currentClass := currentClass theNonMetaclass.
     ].
@@ -452,7 +456,7 @@
             self addCheckBoxForOwnerAndItsSubclassesAndItsPrivateClasses.
         ].
     ] ifFalse:[
-        browser currentNamespace ~~ Smalltalk ifTrue:[
+        (browser notNil and:[browser currentNamespace ~~ Smalltalk]) ifTrue:[
             self addCheckBoxForEverywhere.
             currentNamespace := browser currentNamespace.
             currentNamespace ~= (browser nameListEntryForALL) ifTrue:[
@@ -472,20 +476,23 @@
     ].
     self addCheckBoxForChangedClassesList.
 
-    (withMethodList and:[ browser isMethodListBrowser ]) ifTrue:[
-        searchAreas size == 0 ifTrue:[
-            self addCheckBoxForEverywhere.
+    withMethodList ifTrue:[
+        browser isMethodListBrowser ifTrue:[
+            searchAreas size == 0 ifTrue:[
+                self addCheckBoxForEverywhere.
+            ].
+            self addCheckBoxForMethodList.
+            browser selectedMethods value size > 1 ifTrue:[
+                self addCheckBoxForSelectedMethods.
+            ].
+            self addCheckBoxForSelectedMethodClasses.
+            self addCheckBoxForSelectedMethodPackages.
+        ] ifFalse:[
+            searchAreas size == 0 ifTrue:[
+                self addCheckBoxForEverywhere.
+            ].
+            self addCheckBoxForChangedMethodList.
         ].
-        self addCheckBoxForMethodList.
-        browser selectedMethods value size > 1 ifTrue:[
-            self addCheckBoxForSelectedMethods.
-        ].
-        self addCheckBoxForSelectedMethodClasses.
-    ] ifFalse:[
-        searchAreas size == 0 ifTrue:[
-            self addCheckBoxForEverywhere.
-        ].
-        self addCheckBoxForChangedMethodList.
     ].
 
     searchAreas size == 0 ifTrue:[
@@ -549,7 +556,7 @@
 
     self label:(resources string:'Search').
 
-    "Modified: / 06-12-2011 / 11:47:06 / cg"
+    "Modified: / 29-02-2012 / 19:48:17 / cg"
 ! !
 
 !SearchDialog methodsFor:'setup'!
@@ -804,7 +811,7 @@
                     select:[:m | m mclass notNil]
                     thenCollect:[:m | m mclass theNonMetaclass]) asSet.
     classes size == 1 ifTrue:[
-        b := CheckBox label:(resources string:'Selected method''s class (%1)'
+        b := CheckBox label:(resources string:'Selected method''s class ("%1")'
                             with:classes first name).
     ] ifFalse:[
         b := CheckBox label:(resources string:'Selected methods'' classes (%1)'
@@ -813,7 +820,26 @@
     self addCheckBox:b forSearchArea:#listOfSelectedMethodClasses.
     ^ b.
 
-    "Modified: / 01-11-2010 / 21:35:46 / cg"
+    "Modified: / 29-02-2012 / 19:42:33 / cg"
+!
+
+addCheckBoxForSelectedMethodPackages
+    |b packages|
+
+    packages := ((browser selectedMethods value ? #()) 
+                    collect:[:m | m package]) asSet.
+
+    packages size == 1 ifTrue:[
+        b := CheckBox label:(resources string:'Selected method''s package ("%1")'
+                            with:packages first).
+    ] ifFalse:[
+        b := CheckBox label:(resources string:'Selected methods'' packages (%1)'
+                            with:packages size).
+    ].
+    self addCheckBox:b forSearchArea:#listOfSelectedMethodPackages.
+    ^ b.
+
+    "Created: / 29-02-2012 / 19:42:26 / cg"
 !
 
 addCheckBoxForSelectedMethods
@@ -885,25 +911,27 @@
 addInputFieldForSelectorOrNameOrString
     |sel lastSearchPatterns|
 
-    searchWhat == #selector ifTrue:[ 
-        sel := browser selectorToSearchFor.
-    ] ifFalse:[ 
-        searchWhat == #globalName ifTrue:[ 
-            sel := browser globalNameToSearchFor ? LastGlobalSearched.
+    browser notNil ifTrue:[
+        searchWhat == #selector ifTrue:[ 
+            sel := browser selectorToSearchFor.
         ] ifFalse:[ 
-            searchWhat == #string ifTrue:[
-                sel := browser stringToSearchFor ? LastStringSearched.
-            ] ifFalse:[
-                searchWhat == #resource ifTrue:[
-                    sel := browser stringToSearchFor ? LastResourceSearched.
+            searchWhat == #globalName ifTrue:[ 
+                sel := browser globalNameToSearchFor ? LastGlobalSearched.
+            ] ifFalse:[ 
+                searchWhat == #string ifTrue:[
+                    sel := browser stringToSearchFor ? LastStringSearched.
                 ] ifFalse:[
-                    sel := browser selectorToSearchFor.
+                    searchWhat == #resource ifTrue:[
+                        sel := browser stringToSearchFor ? LastResourceSearched.
+                    ] ifFalse:[
+                        sel := browser selectorToSearchFor.
+                    ]
                 ]
-            ]
+            ].
         ].
     ].
+    lastSearchPatterns := (browser ? SystemBrowser) lastSearchPatterns.
 
-    lastSearchPatterns := browser lastSearchPatterns.
     sel isEmptyOrNil ifTrue:[ 
         "/ use last searchString
         lastSearchPatterns size > 0 ifTrue:[ 
@@ -940,14 +968,14 @@
                     inputField contents:best.
                     "/ listHolder contents:matching.
                     matching size ~~ 1 ifTrue:[ 
-                        browser window beep.
+                        (browser ? self) window beep.
                     ].
                 ].
         ].
 
     selectorHolder onChangeEvaluate:[ self updateListOfMatchingSelectorsFor:inputField contents ].
 
-    "Modified: / 06-07-2011 / 12:07:12 / cg"
+    "Modified: / 14-02-2012 / 14:13:52 / cg"
 !
 
 addTextEntryFieldForCode
@@ -1156,6 +1184,12 @@
         methods := nil.
         ^ self.
     ].
+    (where == #listOfSelectedMethodPackages) ifTrue:[ 
+        classes := (((browser selectedMethods value ? #()) collect:[:m | m package]) asSet
+                        collectAll:[:p | Smalltalk allClassesInPackage:p ]) asOrderedCollection.
+        methods := nil.
+        ^ self.
+    ].
     (where == #listOfChangedClasses) ifTrue:[ 
         classes := ChangeSet current changedClasses.
         methods := nil.
@@ -1182,8 +1216,8 @@
 
     self halt:'inumplemented search'.
 
-    "Modified: / 19-11-2010 / 12:01:15 / cg"
     "Modified: / 05-10-2011 / 15:48:20 / az"
+    "Modified: / 29-02-2012 / 19:47:42 / cg"
 !
 
 helpTextForMetaPatterns
@@ -1291,11 +1325,11 @@
 !SearchDialog class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/Tools_SearchDialog.st,v 1.67 2011/12/06 10:47:22 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/Tools_SearchDialog.st,v 1.69 2012/02/29 18:50:58 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Tools__SearchDialog.st 7911 2012-02-22 09:55:48Z vranyj1 $'
+    ^ '$Id: Tools__SearchDialog.st 7952 2012-03-21 17:50:14Z vranyj1 $'
 ! !
 
 SearchDialog initialize!