Tools_SearchDialog.st
changeset 5886 a212a4614597
parent 5592 d9730a8d7c52
child 6242 53a88bc35aa5
--- a/Tools_SearchDialog.st	Thu May 27 16:29:01 2004 +0200
+++ b/Tools_SearchDialog.st	Thu May 27 16:29:32 2004 +0200
@@ -21,7 +21,8 @@
 		searchAreas caseHolder matchHolder isMethodHolder codeField
 		selectorHolder defaultOpenHow withTextEntry allowFind allowBuffer
 		allowBrowser isSelector'
-	classVariableNames:'LastCodeSearched LastCodeSearchWasMethod LastGlobalSearched'
+	classVariableNames:'LastCodeSearched LastCodeSearchWasMethod LastGlobalSearched
+		LastSearchWasMatch LastSearchWasIgnoringCase'
 	poolDictionaries:''
 	category:'Interface-Browsers-New'
 !
@@ -51,79 +52,89 @@
 !SearchDialog methodsFor:'public'!
 
 askThenDo:aBlock 
-    |where code sel|
+    |where code sel matchHolderValue caseHolderValue|
 
     self open.
     self accepted ifFalse:[ 
-	^ self.
+        ^ self.
     ].
 
     openHow isNil ifTrue:[ 
-	openHow := defaultOpenHow.
+        openHow := defaultOpenHow.
     ].
     where := whereRadioGroup value.
     withTextEntry ifTrue:[ 
-	isSelector == #code ifTrue:[
-	    code := codeField contentsAsString.
-	    LastCodeSearched := code.
-	] ifFalse:[
-	    sel := selectorHolder value.
-	    sel isEmpty ifTrue:[ 
-		browser warn:(isSelector 
-			    ifTrue:[ 'No selector entered for search'. ]
-			    ifFalse:[ 'Nothing entered for search'. ]).
-		^ self.
-	    ].
-	    sel := sel string.
-	    browser rememberSearchPattern:sel.
-	    isSelector == #globalName ifTrue:[ 
-		LastGlobalSearched := sel.
-	    ].
-	].
+        isSelector == #code ifTrue:[
+            code := codeField contentsAsString.
+            LastCodeSearched := code.
+        ] ifFalse:[
+            sel := selectorHolder value.
+            sel isEmpty ifTrue:[ 
+                browser warn:(isSelector 
+                            ifTrue:[ 'No selector entered for search'. ]
+                            ifFalse:[ 'Nothing entered for search'. ]).
+                ^ self.
+            ].
+            sel := sel string.
+            browser rememberSearchPattern:sel.
+            isSelector == #globalName ifTrue:[ 
+                LastGlobalSearched := sel.
+            ].
+        ].
     ].
     where isNil ifTrue:[ 
-	browser warn:'No class(es) for search'.
-	^ self.
+        browser warn:'No class(es) for search'.
+        ^ self.
     ].
 
     self getClassesAndMethodsFor:where.
     (#(#classesWithPrivateClasses #classHierarchiesWithPrivateClasses #ownersWithPrivateClasses #ownersHierarchiesWithPrivateClasses) 
-	includes:where) 
-	    ifTrue:[ 
-		|toSearch|
+        includes:where) 
+            ifTrue:[ 
+                |toSearch|
 
-		toSearch := IdentitySet withAll:classes.
-		classes := IdentitySet withAll:toSearch.
-		[ toSearch notEmpty. ] whileTrue:[
-		    |cls|
+                toSearch := IdentitySet withAll:classes.
+                classes := IdentitySet withAll:toSearch.
+                [ toSearch notEmpty. ] whileTrue:[
+                    |cls|
 
-		    cls := toSearch removeFirst.
-		    classes addAll:cls allPrivateClasses.
-		].
-	    ].
+                    cls := toSearch removeFirst.
+                    classes addAll:cls allPrivateClasses.
+                ].
+            ].
 
     classes size == 0 ifTrue:[
-	classes := nil.
-	methods size == 0 ifTrue:[ 
-	    browser warn:'No class(es) given for search.'.
-	    ^ self.
-	].
+        classes := nil.
+        methods size == 0 ifTrue:[ 
+            browser warn:'No class(es) given for search.'.
+            ^ self.
+        ].
     ] ifFalse:[
-	classes := classes asOrderedCollection.
-	methods size ~~ 0 ifTrue:[ 
-	    browser warn:'oops'.
-	    methods := nil.
-	].
+        classes := classes asOrderedCollection.
+        methods size ~~ 0 ifTrue:[ 
+            browser warn:'oops'.
+            methods := nil.
+        ].
+    ].
+
+
+    matchHolderValue := matchHolder value.
+    matchHolderValue notNil ifTrue:[
+        LastSearchWasMatch := matchHolderValue
+    ].
+    caseHolderValue := caseHolder value.
+    caseHolderValue notNil ifTrue:[
+        LastSearchWasIgnoringCase := caseHolderValue
     ].
 
     aBlock 
-	value:classes
-	value:(sel ? code)
-	value:(caseHolder value ? false)
-	value:openHow
-	value:(matchHolder value ? false)
-	value:methods
-	value:(isMethodHolder value ? false).
+        value:classes
+        value:(sel ? code)
+        value:(caseHolderValue ? false)
+        value:openHow
+        value:(matchHolderValue ? false)
+        value:methods
+        value:(isMethodHolder value ? false).
 !
 
 setupToAskForMethodSearchTitle:title forBrowser:brwsrArg isSelector:isSelectorArg searchArea:whereDefault withCaseIgnore:withCaseIgnore withMatch:withMatch 
@@ -146,38 +157,38 @@
     currentClass := browser theSingleSelectedClass.
     currentClassCategory := browser theSingleSelectedCategory.
     currentClass isNil ifTrue:[ 
-	browser hasMethodSelected ifTrue:[ 
-	    currentClass := selectedMethods first mclass.
-	    selectedClasses := (selectedMethods collect:[ :each | each mclass ]) 
-			asIdentitySet.
-	    selectedClasses := selectedClasses select:[ :each | each notNil ].
-	].
+        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.
+        currentClass := currentClass theNonMetaclass.
     ].
 
     withTextEntry ifTrue:[ 
-	isSelector == #code ifTrue:[
-	    self addTextEntryFieldForCode.
-	] ifFalse:[
-	    self addInputFieldForSelectorOrNameOrString.
+        isSelector == #code ifTrue:[
+            self addTextEntryFieldForCode.
+        ] ifFalse:[
+            self addInputFieldForSelectorOrNameOrString.
 
-	    withCaseIgnore ifTrue:[ 
-		self addCheckBox:(resources string:'Ignore case')
-		    on:(caseHolder := false asValue).
-	    ].
-	    withMatch ifTrue:[ 
-		self addCheckBox:(resources string:'Match')
-		    on:(matchHolder := true asValue).
+            withCaseIgnore ifTrue:[ 
+                self addCheckBox:(resources string:'Ignore case')
+                    on:(caseHolder := (LastSearchWasIgnoringCase ? false) asValue).
+            ].
+            withMatch ifTrue:[ 
+                self addCheckBox:(resources string:'Match')
+                    on:(matchHolder := (LastSearchWasMatch ? true) asValue).
 
 "/                (isSelector and:[ sel notNil. ]) ifTrue:[ 
 "/                    sel includesMatchCharacters ifTrue:[ 
 "/                        matchHolder value:false.
 "/                    ].
 "/                ].
-	    ].
-	].
+            ].
+        ].
     ].
     searchAreas := OrderedCollection new.
     verticalPanel := VerticalPanelView new.
@@ -187,79 +198,79 @@
     (self addTextLabel:(resources string:'Search in:')) adjust:#left.
     whereRadioGroup := RadioButtonGroup new.
     (selectedCategories size > 0 or:[ selectedClasses size > 0 ]) ifTrue:[ 
-	self addCheckBoxForEverywhere.
+        self addCheckBoxForEverywhere.
         
-	"/        classMethodListView notNil ifTrue:[
-	"/            b := CheckBox label:(resources string:'Shown Methods').
-	"/            panel add:b. whereChannel add:b value:#currentMethodList.
-	"/            areas add:#currentMethodList.
-	"/            self makeTabable:b.
-	"/        ].
-	browser isMethodListBrowser ifTrue:[ 
-	    methodNameSpaces := (browser selectedMethods value ? #()) 
-			collect:[ :eachMethod | eachMethod mclass topNameSpace ].
-	].
-	methodNameSpaces size == 1 ifTrue:[ 
-	    currentNamespace := methodNameSpaces first.
-	] ifFalse:[ 
-	    currentNamespace := browser currentNamespace.
-	].
-	(currentNamespace notNil 
-	    and:[ currentNamespace ~= (browser nameListEntryForALL) ]) 
-		ifTrue:[ self addCheckBoxForCurrentNamespace ]
-		ifFalse:[ 
-		    (currentClass notNil 
-			and:[ (ns := currentClass nameSpace) notNil and:[ ns ~~ Smalltalk ] ]) 
-			    ifTrue:[ self addCheckBoxForClassesNamespace:ns ].
-		].
-	selectedCategories size > 0 ifTrue:[ 
-	    self addCheckBoxForSelectedClassCategory.
-	].
-	(selectedClasses size > 0 or:[ selectedMethods size > 0 ]) ifTrue:[ 
-	    self addCheckBoxForSelectedClass.
-	    self addCheckBoxForSelectedClassAndSuperclasses.
-	    self addCheckBoxForSelectedClassAndSubclasses.
-	    self addCheckBoxForSelectedClassAndPrivateClasses.
-	    self addCheckBoxForSelectedClassAndSubclassesAndPrivateClasses.
-	    self addCheckBoxForOwnerAndItsPrivateClasses.
-	    self addCheckBoxForOwnerAndItsSubclassesAndItsPrivateClasses.
-	].
+        "/        classMethodListView notNil ifTrue:[
+        "/            b := CheckBox label:(resources string:'Shown Methods').
+        "/            panel add:b. whereChannel add:b value:#currentMethodList.
+        "/            areas add:#currentMethodList.
+        "/            self makeTabable:b.
+        "/        ].
+        browser isMethodListBrowser ifTrue:[ 
+            methodNameSpaces := (browser selectedMethods value ? #()) 
+                        collect:[ :eachMethod | eachMethod mclass topNameSpace ].
+        ].
+        methodNameSpaces size == 1 ifTrue:[ 
+            currentNamespace := methodNameSpaces first.
+        ] ifFalse:[ 
+            currentNamespace := browser currentNamespace.
+        ].
+        (currentNamespace notNil 
+            and:[ currentNamespace ~= (browser nameListEntryForALL) ]) 
+                ifTrue:[ self addCheckBoxForCurrentNamespace ]
+                ifFalse:[ 
+                    (currentClass notNil 
+                        and:[ (ns := currentClass nameSpace) notNil and:[ ns ~~ Smalltalk ] ]) 
+                            ifTrue:[ self addCheckBoxForClassesNamespace:ns ].
+                ].
+        selectedCategories size > 0 ifTrue:[ 
+            self addCheckBoxForSelectedClassCategory.
+        ].
+        (selectedClasses size > 0 or:[ selectedMethods size > 0 ]) ifTrue:[ 
+            self addCheckBoxForSelectedClass.
+            self addCheckBoxForSelectedClassAndSuperclasses.
+            self addCheckBoxForSelectedClassAndSubclasses.
+            self addCheckBoxForSelectedClassAndPrivateClasses.
+            self addCheckBoxForSelectedClassAndSubclassesAndPrivateClasses.
+            self addCheckBoxForOwnerAndItsPrivateClasses.
+            self addCheckBoxForOwnerAndItsSubclassesAndItsPrivateClasses.
+        ].
     ] ifFalse:[ 
-	browser currentNamespace ~~ Smalltalk ifTrue:[ 
-	    self addCheckBoxForEverywhere.
-	    currentNamespace := browser currentNamespace.
-	    currentNamespace ~= (browser nameListEntryForALL) ifTrue:[ 
-		self addCheckBoxForCurrentNamespace.
-	    ] ifFalse:[ 
-		(currentClass notNil 
-		    and:[ (ns := currentClass nameSpace) notNil and:[ ns ~~ Smalltalk ] ]) 
-			ifTrue:[ self addCheckBoxForClassesNamespace:ns ].
-	    ].
-	].
+        browser currentNamespace ~~ Smalltalk ifTrue:[ 
+            self addCheckBoxForEverywhere.
+            currentNamespace := browser currentNamespace.
+            currentNamespace ~= (browser nameListEntryForALL) ifTrue:[ 
+                self addCheckBoxForCurrentNamespace.
+            ] ifFalse:[ 
+                (currentClass notNil 
+                    and:[ (ns := currentClass nameSpace) notNil and:[ ns ~~ Smalltalk ] ]) 
+                        ifTrue:[ self addCheckBoxForClassesNamespace:ns ].
+            ].
+        ].
     ].
     (withMethodList and:[ browser isMethodListBrowser ]) ifTrue:[ 
-	searchAreas size == 0 ifTrue:[ 
-	    self addCheckBoxForEverywhere.
-	].
-	self addCheckBoxForMethodList.
-	browser selectedMethods value size > 1 ifTrue:[ 
-	    self addCheckBoxForSelectedMethods.
-	].
+        searchAreas size == 0 ifTrue:[ 
+            self addCheckBoxForEverywhere.
+        ].
+        self addCheckBoxForMethodList.
+        browser selectedMethods value size > 1 ifTrue:[ 
+            self addCheckBoxForSelectedMethods.
+        ].
     ].
     searchAreas size == 0 ifTrue:[ 
-	whereRadioGroup := #everywhere asValue.
-	self addDummyCheckBoxForEverywhere.
+        whereRadioGroup := #everywhere asValue.
+        self addDummyCheckBoxForEverywhere.
     ] ifFalse:[ 
-	whereDefault notNil ifTrue:[ 
-	    (searchAreas includes:whereDefault) ifTrue:[ 
-		where := whereDefault asSymbol.
-	    ] ifFalse:[ 
-		where := searchAreas first.
-	    ].
-	] ifFalse:[ 
-	    where := #everywhere.
-	].
-	whereRadioGroup value:where.
+        whereDefault notNil ifTrue:[ 
+            (searchAreas includes:whereDefault) ifTrue:[ 
+                where := whereDefault asSymbol.
+            ] ifFalse:[ 
+                where := searchAreas first.
+            ].
+        ] ifFalse:[ 
+            where := #everywhere.
+        ].
+        whereRadioGroup value:where.
     ].
     self addComponent:verticalPanel indent:0.
     
@@ -752,5 +763,5 @@
 !SearchDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_SearchDialog.st,v 1.2 2004-02-26 19:03:55 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_SearchDialog.st,v 1.3 2004-05-27 14:29:32 cg Exp $'
 ! !