--- 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 $'
! !