diff -r c02ebe91ba11 -r c37cb25bed62 BrowserView.st --- a/BrowserView.st Sat Apr 19 09:25:11 1997 +0200 +++ b/BrowserView.st Sat Apr 19 11:22:13 1997 +0200 @@ -8432,9 +8432,17 @@ askForSearchTitle:title openWith:aSelector isSelector:isSelector searchArea:whereDefault "convenient method: setup enterBox with text from codeView or selected method for browsing based on a selector. Set action and launch box. - SearchArea may be one of #everywhere, #classCategory, #class or #classHierarchy" - - |box grp panel selectorHolder where whereChannel b sel classes| + SearchArea may be one of #everywhere, #classCategory, #class, #classWithPrivateClasses, + #classHierarchy or #classHierarchyWithPrivateClasses" + + |box grp panel selectorHolder where whereChannel b sel classes areas toSearch cls| + + areas := #(everywhere + classCategory + class + classHierarchy + classWithPrivateClasses + classHierarchyWithPrivateClasses). isSelector ifTrue:[ sel := self selectorToSearchFor. @@ -8476,10 +8484,35 @@ b := CheckBox "RadioButton" label:(resources string:'class & subclasses'). panel add:b. grp add:b. box makeTabable:b. + + currentClass subclasses size == 0 ifTrue:[ + b disable. + ]. + + b := CheckBox "RadioButton" label:(resources string:'class & private classes'). + panel add:b.grp add:b. + box makeTabable:b. + + currentClass privateClasses size == 0 ifTrue:[ + b disable + ]. + + b := CheckBox "RadioButton" label:(resources string:'class & subclasses & all private classes'). + panel add:b. grp add:b. + box makeTabable:b. + + currentClass subclasses size == 0 ifTrue:[ + b disable. + ] ifFalse:[ + toSearch := IdentitySet new. + currentClass withAllSubclasses do:[:cls | toSearch add:cls privateClasses]. + toSearch size == 0 ifTrue:[ + b disable + ] + ] ]. whereDefault notNil ifTrue:[ - where := (#(everywhere classCategory class classHierarchy) - indexOf:whereDefault). + where := areas indexOf:whereDefault. where == 0 ifTrue:[where := 1]. ] ifFalse:[ where := 1. @@ -8504,19 +8537,35 @@ sel := selectorHolder value. where := whereChannel value. - where == 1 ifTrue:[ + where := areas at:where ifAbsent:#class. + + where == #everywhere ifTrue:[ classes := Smalltalk allClasses. ] ifFalse:[ - where == 2 ifTrue:[ + where == #classCategory ifTrue:[ classes := Smalltalk allClassesInCategory:currentClassCategory ] ifFalse:[ - where == 3 ifTrue:[ + (where == #class or:[where == #classWithPrivateClasses]) ifTrue:[ classes := Array with:currentClass ] ifFalse:[ - classes := currentClass withAllSubclasses + (where == #classHierarchy or:[where == #classHierarchyWithPrivateClasses]) ifTrue:[ + classes := currentClass withAllSubclasses + ] ] ] ]. + (where == #classWithPrivateClasses or:[where == #classHierarchyWithPrivateClasses]) ifTrue:[ + toSearch := IdentitySet withAll:classes. + classes := IdentitySet withAll:toSearch. + + [toSearch notEmpty] whileTrue:[ + cls := toSearch removeFirst. + toSearch addAll:cls privateClasses. + classes addAll:cls privateClasses. + ]. + classes := classes asOrderedCollection. + ]. + self withSearchCursorDo:[ SystemBrowser perform:aSelector with:sel with:classes ] @@ -10003,6 +10052,6 @@ !BrowserView class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.293 1997-04-18 13:25:17 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.294 1997-04-19 09:22:13 ca Exp $' ! ! BrowserView initialize!