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. |
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. |
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 |