Tools__SearchDialog.st
branchjv
changeset 12205 f210b6224ef0
parent 12170 6c9c4b7981ee
child 12229 5c129972b1fd
equal deleted inserted replaced
12204:ba9ffe0fd036 12205:f210b6224ef0
   239                             ifFalse:[ 'Nothing entered for search'. ]).
   239                             ifFalse:[ 'Nothing entered for search'. ]).
   240                 ^ self.
   240                 ^ self.
   241             ].
   241             ].
   242             sel := sel string.
   242             sel := sel string.
   243 
   243 
   244             browser rememberSearchPattern:sel.
   244             (browser ? SystemBrowser) rememberSearchPattern:sel.
   245             searchWhat == #globalName ifTrue:[ 
   245             searchWhat == #globalName ifTrue:[ 
   246                 LastGlobalSearched := sel.
   246                 LastGlobalSearched := sel.
   247             ] ifFalse:[
   247             ] ifFalse:[
   248                 searchWhat == #string ifTrue:[
   248                 searchWhat == #string ifTrue:[
   249                     LastStringSearched := sel.
   249                     LastStringSearched := sel.
   258                 ]
   258                 ]
   259             ]
   259             ]
   260         ].
   260         ].
   261     ].
   261     ].
   262     where isNil ifTrue:[ 
   262     where isNil ifTrue:[ 
   263         browser warn:'No class(es) for search'.
   263         (browser ? Dialog) warn:'No class(es) for search'.
   264         ^ self.
   264         ^ self.
   265     ].
   265     ].
   266     self getClassesAndMethodsFor:where.
   266     self getClassesAndMethodsFor:where.
   267 
   267 
   268     (#(#classesWithPrivateClasses #classHierarchiesWithPrivateClasses #ownersWithPrivateClasses #ownersHierarchiesWithPrivateClasses) 
   268     (#(#classesWithPrivateClasses #classHierarchiesWithPrivateClasses #ownersWithPrivateClasses #ownersHierarchiesWithPrivateClasses) 
   281             ].
   281             ].
   282 
   282 
   283     classes size == 0 ifTrue:[
   283     classes size == 0 ifTrue:[
   284         classes := nil.
   284         classes := nil.
   285         methods size == 0 ifTrue:[ 
   285         methods size == 0 ifTrue:[ 
   286             browser warn:'No class(es) given for search.'.
   286             (browser ? Dialog) warn:'No class(es) given for search.'.
   287             ^ self.
   287             ^ self.
   288         ].
   288         ].
   289     ] ifFalse:[
   289     ] ifFalse:[
   290         classes := classes asOrderedCollection.
   290         classes := classes asOrderedCollection.
   291         methods size ~~ 0 ifTrue:[ 
   291         methods size ~~ 0 ifTrue:[ 
   292             browser warn:'oops'.
   292             (browser ? Dialog) warn:'oops'.
   293             methods := nil.
   293             methods := nil.
   294         ].
   294         ].
   295     ].
   295     ].
   296 
   296 
   297     matchHolderValue := matchHolder value.
   297     matchHolderValue := matchHolder value.
   317             value:(isMethodHolder value ? false).
   317             value:(isMethodHolder value ? false).
   318     ] ifFalse:[
   318     ] ifFalse:[
   319         aBlock value.
   319         aBlock value.
   320     ]
   320     ]
   321 
   321 
   322     "Modified: / 04-08-2011 / 23:18:42 / cg"
   322     "Modified: / 14-02-2012 / 14:12:49 / cg"
   323 !
   323 !
   324 
   324 
   325 setupToAskForMethodSearchTitle:title forBrowser:brwsrArg searchWhat:searchWhatArg 
   325 setupToAskForMethodSearchTitle:title forBrowser:brwsrArg searchWhat:searchWhatArg 
   326   searchArea:whereDefault withCaseIgnore:withCaseIgnore withMatch:withMatch 
   326   searchArea:whereDefault withCaseIgnore:withCaseIgnore withMatch:withMatch 
   327   withMethodList:withMethodList allowFind:allowFindArg allowBuffer:allowBufferArg 
   327   withMethodList:withMethodList allowFind:allowFindArg allowBuffer:allowBufferArg 
   333     allowBuffer := allowBufferArg.
   333     allowBuffer := allowBufferArg.
   334     allowBrowser := allowBrowserArg.
   334     allowBrowser := allowBrowserArg.
   335     searchWhat := searchWhatArg.
   335     searchWhat := searchWhatArg.
   336 
   336 
   337     withTextEntry := withTextEntryArg.
   337     withTextEntry := withTextEntryArg.
   338     browser := brwsrArg.
   338 
   339     resources := browser resources.
   339     (browser := brwsrArg) isNil ifTrue:[
       
   340         resources := NewSystemBrowser classResources.
       
   341     ] ifFalse:[
       
   342         resources := browser resources.
       
   343         selectedClasses := browser selectedClasses value.
       
   344         selectedCategories := browser selectedCategoriesValue.
       
   345         selectedCategories := selectedCategories reject:[:cat | NavigatorModel isPseudoCategory:cat].
       
   346         selectedMethods := browser selectedMethods value.
       
   347         currentClass := browser theSingleSelectedClass.
       
   348         currentClassCategory := browser theSingleSelectedCategory.
       
   349         currentPackage := browser theSingleSelectedProject.
       
   350         currentClass isNil ifTrue:[
       
   351             browser hasMethodSelected ifTrue:[
       
   352                 currentClass := selectedMethods first mclass.
       
   353                 "/ selectedClasses := (selectedMethods collect:[:each | each mclass ]) asIdentitySet.
       
   354                 "/ selectedClasses := selectedClasses select:[:each | each notNil ].
       
   355             ].
       
   356         ].
       
   357     ].
   340 
   358 
   341     (self addTextLabel:(resources stringWithCRs:title)) adjust:#left.
   359     (self addTextLabel:(resources stringWithCRs:title)) adjust:#left.
   342 
   360 
   343     selectedClasses := browser selectedClasses value.
       
   344     selectedCategories := browser selectedCategoriesValue.
       
   345     selectedCategories := selectedCategories reject:[:cat | NavigatorModel isPseudoCategory:cat].
       
   346     selectedMethods := browser selectedMethods value.
       
   347     currentClass := browser theSingleSelectedClass.
       
   348     currentClassCategory := browser theSingleSelectedCategory.
       
   349     currentPackage := browser theSingleSelectedProject.
       
   350     currentClass isNil ifTrue:[
       
   351         browser hasMethodSelected ifTrue:[
       
   352             currentClass := selectedMethods first mclass.
       
   353             "/ selectedClasses := (selectedMethods collect:[:each | each mclass ]) asIdentitySet.
       
   354             "/ selectedClasses := selectedClasses select:[:each | each notNil ].
       
   355         ].
       
   356     ].
       
   357     currentClass notNil ifTrue:[
   361     currentClass notNil ifTrue:[
   358         currentClass := currentClass theNonMetaclass.
   362         currentClass := currentClass theNonMetaclass.
   359     ].
   363     ].
   360     withTextEntry ifTrue:[
   364     withTextEntry ifTrue:[
   361         self addTextEntryWithCaseIgnore:withCaseIgnore withMatch:withMatch.
   365         self addTextEntryWithCaseIgnore:withCaseIgnore withMatch:withMatch.
   450             self addCheckBoxForSelectedClassAndSubclassesAndPrivateClasses.
   454             self addCheckBoxForSelectedClassAndSubclassesAndPrivateClasses.
   451             self addCheckBoxForOwnerAndItsPrivateClasses.
   455             self addCheckBoxForOwnerAndItsPrivateClasses.
   452             self addCheckBoxForOwnerAndItsSubclassesAndItsPrivateClasses.
   456             self addCheckBoxForOwnerAndItsSubclassesAndItsPrivateClasses.
   453         ].
   457         ].
   454     ] ifFalse:[
   458     ] ifFalse:[
   455         browser currentNamespace ~~ Smalltalk ifTrue:[
   459         (browser notNil and:[browser currentNamespace ~~ Smalltalk]) ifTrue:[
   456             self addCheckBoxForEverywhere.
   460             self addCheckBoxForEverywhere.
   457             currentNamespace := browser currentNamespace.
   461             currentNamespace := browser currentNamespace.
   458             currentNamespace ~= (browser nameListEntryForALL) ifTrue:[
   462             currentNamespace ~= (browser nameListEntryForALL) ifTrue:[
   459                 self addCheckBoxForCurrentNamespace.
   463                 self addCheckBoxForCurrentNamespace.
   460             ] ifFalse:[
   464             ] ifFalse:[
   470     searchAreas size == 0 ifTrue:[
   474     searchAreas size == 0 ifTrue:[
   471         self addCheckBoxForEverywhere.
   475         self addCheckBoxForEverywhere.
   472     ].
   476     ].
   473     self addCheckBoxForChangedClassesList.
   477     self addCheckBoxForChangedClassesList.
   474 
   478 
   475     (withMethodList and:[ browser isMethodListBrowser ]) ifTrue:[
   479     withMethodList ifTrue:[
   476         searchAreas size == 0 ifTrue:[
   480         browser isMethodListBrowser ifTrue:[
   477             self addCheckBoxForEverywhere.
   481             searchAreas size == 0 ifTrue:[
   478         ].
   482                 self addCheckBoxForEverywhere.
   479         self addCheckBoxForMethodList.
   483             ].
   480         browser selectedMethods value size > 1 ifTrue:[
   484             self addCheckBoxForMethodList.
   481             self addCheckBoxForSelectedMethods.
   485             browser selectedMethods value size > 1 ifTrue:[
   482         ].
   486                 self addCheckBoxForSelectedMethods.
   483         self addCheckBoxForSelectedMethodClasses.
   487             ].
   484     ] ifFalse:[
   488             self addCheckBoxForSelectedMethodClasses.
   485         searchAreas size == 0 ifTrue:[
   489             self addCheckBoxForSelectedMethodPackages.
   486             self addCheckBoxForEverywhere.
   490         ] ifFalse:[
   487         ].
   491             searchAreas size == 0 ifTrue:[
   488         self addCheckBoxForChangedMethodList.
   492                 self addCheckBoxForEverywhere.
       
   493             ].
       
   494             self addCheckBoxForChangedMethodList.
       
   495         ].
   489     ].
   496     ].
   490 
   497 
   491     searchAreas size == 0 ifTrue:[
   498     searchAreas size == 0 ifTrue:[
   492         whereRadioGroup := #everywhere asValue.
   499         whereRadioGroup := #everywhere asValue.
   493         self addDummyCheckBoxForEverywhere.
   500         self addDummyCheckBoxForEverywhere.
   547     ].
   554     ].
   548     self addButtons.
   555     self addButtons.
   549 
   556 
   550     self label:(resources string:'Search').
   557     self label:(resources string:'Search').
   551 
   558 
   552     "Modified: / 06-12-2011 / 11:47:06 / cg"
   559     "Modified: / 29-02-2012 / 19:48:17 / cg"
   553 ! !
   560 ! !
   554 
   561 
   555 !SearchDialog methodsFor:'setup'!
   562 !SearchDialog methodsFor:'setup'!
   556 
   563 
   557 addCheckBox:b forSearchArea:area 
   564 addCheckBox:b forSearchArea:area 
   802 
   809 
   803     classes := ((browser selectedMethods value ? #()) 
   810     classes := ((browser selectedMethods value ? #()) 
   804                     select:[:m | m mclass notNil]
   811                     select:[:m | m mclass notNil]
   805                     thenCollect:[:m | m mclass theNonMetaclass]) asSet.
   812                     thenCollect:[:m | m mclass theNonMetaclass]) asSet.
   806     classes size == 1 ifTrue:[
   813     classes size == 1 ifTrue:[
   807         b := CheckBox label:(resources string:'Selected method''s class (%1)'
   814         b := CheckBox label:(resources string:'Selected method''s class ("%1")'
   808                             with:classes first name).
   815                             with:classes first name).
   809     ] ifFalse:[
   816     ] ifFalse:[
   810         b := CheckBox label:(resources string:'Selected methods'' classes (%1)'
   817         b := CheckBox label:(resources string:'Selected methods'' classes (%1)'
   811                             with:classes size).
   818                             with:classes size).
   812     ].
   819     ].
   813     self addCheckBox:b forSearchArea:#listOfSelectedMethodClasses.
   820     self addCheckBox:b forSearchArea:#listOfSelectedMethodClasses.
   814     ^ b.
   821     ^ b.
   815 
   822 
   816     "Modified: / 01-11-2010 / 21:35:46 / cg"
   823     "Modified: / 29-02-2012 / 19:42:33 / cg"
       
   824 !
       
   825 
       
   826 addCheckBoxForSelectedMethodPackages
       
   827     |b packages|
       
   828 
       
   829     packages := ((browser selectedMethods value ? #()) 
       
   830                     collect:[:m | m package]) asSet.
       
   831 
       
   832     packages size == 1 ifTrue:[
       
   833         b := CheckBox label:(resources string:'Selected method''s package ("%1")'
       
   834                             with:packages first).
       
   835     ] ifFalse:[
       
   836         b := CheckBox label:(resources string:'Selected methods'' packages (%1)'
       
   837                             with:packages size).
       
   838     ].
       
   839     self addCheckBox:b forSearchArea:#listOfSelectedMethodPackages.
       
   840     ^ b.
       
   841 
       
   842     "Created: / 29-02-2012 / 19:42:26 / cg"
   817 !
   843 !
   818 
   844 
   819 addCheckBoxForSelectedMethods
   845 addCheckBoxForSelectedMethods
   820     |b|
   846     |b|
   821 
   847 
   883 !
   909 !
   884 
   910 
   885 addInputFieldForSelectorOrNameOrString
   911 addInputFieldForSelectorOrNameOrString
   886     |sel lastSearchPatterns|
   912     |sel lastSearchPatterns|
   887 
   913 
   888     searchWhat == #selector ifTrue:[ 
   914     browser notNil ifTrue:[
   889         sel := browser selectorToSearchFor.
   915         searchWhat == #selector ifTrue:[ 
   890     ] ifFalse:[ 
   916             sel := browser selectorToSearchFor.
   891         searchWhat == #globalName ifTrue:[ 
       
   892             sel := browser globalNameToSearchFor ? LastGlobalSearched.
       
   893         ] ifFalse:[ 
   917         ] ifFalse:[ 
   894             searchWhat == #string ifTrue:[
   918             searchWhat == #globalName ifTrue:[ 
   895                 sel := browser stringToSearchFor ? LastStringSearched.
   919                 sel := browser globalNameToSearchFor ? LastGlobalSearched.
   896             ] ifFalse:[
   920             ] ifFalse:[ 
   897                 searchWhat == #resource ifTrue:[
   921                 searchWhat == #string ifTrue:[
   898                     sel := browser stringToSearchFor ? LastResourceSearched.
   922                     sel := browser stringToSearchFor ? LastStringSearched.
   899                 ] ifFalse:[
   923                 ] ifFalse:[
   900                     sel := browser selectorToSearchFor.
   924                     searchWhat == #resource ifTrue:[
       
   925                         sel := browser stringToSearchFor ? LastResourceSearched.
       
   926                     ] ifFalse:[
       
   927                         sel := browser selectorToSearchFor.
       
   928                     ]
   901                 ]
   929                 ]
   902             ]
   930             ].
   903         ].
   931         ].
   904     ].
   932     ].
   905 
   933     lastSearchPatterns := (browser ? SystemBrowser) lastSearchPatterns.
   906     lastSearchPatterns := browser lastSearchPatterns.
   934 
   907     sel isEmptyOrNil ifTrue:[ 
   935     sel isEmptyOrNil ifTrue:[ 
   908         "/ use last searchString
   936         "/ use last searchString
   909         lastSearchPatterns size > 0 ifTrue:[ 
   937         lastSearchPatterns size > 0 ifTrue:[ 
   910             sel := lastSearchPatterns first.
   938             sel := lastSearchPatterns first.
   911         ].
   939         ].
   938                     best := what first.
   966                     best := what first.
   939                     matching := what second.
   967                     matching := what second.
   940                     inputField contents:best.
   968                     inputField contents:best.
   941                     "/ listHolder contents:matching.
   969                     "/ listHolder contents:matching.
   942                     matching size ~~ 1 ifTrue:[ 
   970                     matching size ~~ 1 ifTrue:[ 
   943                         browser window beep.
   971                         (browser ? self) window beep.
   944                     ].
   972                     ].
   945                 ].
   973                 ].
   946         ].
   974         ].
   947 
   975 
   948     selectorHolder onChangeEvaluate:[ self updateListOfMatchingSelectorsFor:inputField contents ].
   976     selectorHolder onChangeEvaluate:[ self updateListOfMatchingSelectorsFor:inputField contents ].
   949 
   977 
   950     "Modified: / 06-07-2011 / 12:07:12 / cg"
   978     "Modified: / 14-02-2012 / 14:13:52 / cg"
   951 !
   979 !
   952 
   980 
   953 addTextEntryFieldForCode
   981 addTextEntryFieldForCode
   954     |initial box panel patternInfoBox infoLabel helpButton errMessageField checkCodeAction
   982     |initial box panel patternInfoBox infoLabel helpButton errMessageField checkCodeAction
   955      metaBox b|
   983      metaBox b|
  1154     (where == #listOfSelectedMethodClasses) ifTrue:[ 
  1182     (where == #listOfSelectedMethodClasses) ifTrue:[ 
  1155         classes := ((browser selectedMethods value ? #()) collect:[:m | m mclass theNonMetaclass]) asSet asOrderedCollection.
  1183         classes := ((browser selectedMethods value ? #()) collect:[:m | m mclass theNonMetaclass]) asSet asOrderedCollection.
  1156         methods := nil.
  1184         methods := nil.
  1157         ^ self.
  1185         ^ self.
  1158     ].
  1186     ].
       
  1187     (where == #listOfSelectedMethodPackages) ifTrue:[ 
       
  1188         classes := (((browser selectedMethods value ? #()) collect:[:m | m package]) asSet
       
  1189                         collectAll:[:p | Smalltalk allClassesInPackage:p ]) asOrderedCollection.
       
  1190         methods := nil.
       
  1191         ^ self.
       
  1192     ].
  1159     (where == #listOfChangedClasses) ifTrue:[ 
  1193     (where == #listOfChangedClasses) ifTrue:[ 
  1160         classes := ChangeSet current changedClasses.
  1194         classes := ChangeSet current changedClasses.
  1161         methods := nil.
  1195         methods := nil.
  1162         ^ self.
  1196         ^ self.
  1163     ].
  1197     ].
  1180         ^ self.
  1214         ^ self.
  1181     ].
  1215     ].
  1182 
  1216 
  1183     self halt:'inumplemented search'.
  1217     self halt:'inumplemented search'.
  1184 
  1218 
  1185     "Modified: / 19-11-2010 / 12:01:15 / cg"
       
  1186     "Modified: / 05-10-2011 / 15:48:20 / az"
  1219     "Modified: / 05-10-2011 / 15:48:20 / az"
       
  1220     "Modified: / 29-02-2012 / 19:47:42 / cg"
  1187 !
  1221 !
  1188 
  1222 
  1189 helpTextForMetaPatterns
  1223 helpTextForMetaPatterns
  1190     ^ 'MetaPatterns:
  1224     ^ 'MetaPatterns:
  1191     ' , '`' allBold , ' = meta 
  1225     ' , '`' allBold , ' = meta 
  1289 ! !
  1323 ! !
  1290 
  1324 
  1291 !SearchDialog class methodsFor:'documentation'!
  1325 !SearchDialog class methodsFor:'documentation'!
  1292 
  1326 
  1293 version_CVS
  1327 version_CVS
  1294     ^ '§Header: /cvs/stx/stx/libtool/Tools_SearchDialog.st,v 1.67 2011/12/06 10:47:22 cg Exp §'
  1328     ^ '§Header: /cvs/stx/stx/libtool/Tools_SearchDialog.st,v 1.69 2012/02/29 18:50:58 cg Exp §'
  1295 !
  1329 !
  1296 
  1330 
  1297 version_SVN
  1331 version_SVN
  1298     ^ '$Id: Tools__SearchDialog.st 7911 2012-02-22 09:55:48Z vranyj1 $'
  1332     ^ '$Id: Tools__SearchDialog.st 7952 2012-03-21 17:50:14Z vranyj1 $'
  1299 ! !
  1333 ! !
  1300 
  1334 
  1301 SearchDialog initialize!
  1335 SearchDialog initialize!