#UI_ENHANCEMENT by cg
class: SearchDialog
typos: genitive of class is class's - not classes.
new search area for extension methods
class definition
added:
#addCheckBoxForCurrentExtensionPackage
#currentExtensionPackag
#currentExtensionPackage
#currentExtensionPackage:
changed:
#addCheckBoxForCurrentPackage
#addCheckBoxForCurrentPackage:
#getClassesAndMethodsFor:
#setupToAskForMethodSearchTitle:forBrowser:searchWhat:searchArea:withCaseIgnore:withMatch:withMethodList:allowFind:allowBuffer:allowBrowser:withTextEntry:
class: SearchDialog class
changed: #helpSpec
class: Tools::SearchDialog
removed: #currentExtensionPackag
--- a/Tools__SearchDialog.st Thu Mar 05 11:18:13 2020 +0100
+++ b/Tools__SearchDialog.st Thu Mar 05 11:18:41 2020 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 2000 by eXept Software AG
All Rights Reserved
@@ -25,7 +27,8 @@
metaclassesOnlyHolder classesOnlyHolder initialText
withSearchStringInLiterals searchStringInLiteralsHolder
searchFreeStandingWordsOnlyHolder withSearchFreeStandingWordsOnly
- ignoreDocumentationMethodsHolder resourceMethodsOnlyHolder'
+ ignoreDocumentationMethodsHolder resourceMethodsOnlyHolder
+ currentExtensionPackage'
classVariableNames:'LastCodeSearched LastCodeSearchWasMethod LastGlobalSearched
LastStringSearched LastSearchWasMatch LastSearchWasCaseSensitive
LastStringSearchArea LastCodeSearchArea AREA_LISTOFMETHODS
@@ -88,6 +91,9 @@
#currentPackage
'Search in the current selected or selected classes package'
+#currentExtensionPackage
+'Search in the package of the current selected extension method'
+
#currentClassesPackage
'Search in the current selected classes package'
@@ -185,6 +191,14 @@
currentClass := aClass
!
+currentExtensionPackage
+ ^ currentExtensionPackage
+!
+
+currentExtensionPackage:aPackage
+ currentExtensionPackage := aPackage
+!
+
currentPackage
^ currentPackage
!
@@ -622,6 +636,7 @@
currentClass := browser theSingleSelectedClass.
currentClassCategory := browser theSingleSelectedCategory.
currentPackage := browser theSingleSelectedProject.
+ currentExtensionPackage := nil.
currentClass isNil ifTrue:[
browser hasMethodSelected ifTrue:[
currentClass := selectedMethods first mclass.
@@ -686,7 +701,7 @@
select:[:eachMethod | eachMethod mclass notNil]
thenCollect:[:eachMethod | eachMethod mclass topNameSpace ].
methodPackages := methods
- collect:[:eachMethod | eachMethod package ].
+ collect:[:eachMethod | eachMethod package ] as:Set.
].
methodNameSpaces size == 1 ifTrue:[
currentNamespace := methodNameSpaces first.
@@ -723,21 +738,29 @@
"/ currentPackage := packagesOfAllClassesInAllSelectedCategories first.
"/ ].
"/ ].
+ selectedMethods notNil ifTrue:[
+ methodPackages := selectedMethods collect:[:m | m package] as:Set.
+ methodPackages size == 1 ifTrue:[
+ methodPackages first ~= currentPackage ifTrue:[
+ currentExtensionPackage := methodPackages first.
+ self addCheckBoxForCurrentExtensionPackage
+ ]
+ ]
+ ]
].
(currentPackage notNil
- and:[ currentPackage ~= (browser nameListEntryForALL) ])
- ifTrue:[
- self addCheckBoxForCurrentPackage.
- self addCheckBoxForCurrentPackageAndSubPackages.
- "/ self addCheckBoxForCurrentPackageAndRequiredPackages.
- ]
- ifFalse:[
- (currentClass notNil) ifTrue:[
- self addCheckBoxForClassesPackage:(currentClass package).
- "/ self addCheckBoxForClassesPackageAndRequiredPackages:(currentClass package).
- ].
- ].
+ and:[ currentPackage ~= (browser nameListEntryForALL) ]
+ ) ifTrue:[
+ self addCheckBoxForCurrentPackage.
+ self addCheckBoxForCurrentPackageAndSubPackages.
+ "/ self addCheckBoxForCurrentPackageAndRequiredPackages.
+ ] ifFalse:[
+ (currentClass notNil) ifTrue:[
+ self addCheckBoxForClassesPackage:(currentClass package).
+ "/ self addCheckBoxForClassesPackageAndRequiredPackages:(currentClass package).
+ ].
+ ].
selectedCategories notEmptyOrNil ifTrue:[
self addCheckBoxForSelectedClassCategory.
@@ -931,6 +954,16 @@
"Created: / 21-09-2006 / 17:39:55 / cg"
!
+addCheckBoxForCurrentExtensionPackage
+ |b|
+
+ b := RadioButton "CheckBox" label:(resources string:'Method''s Package ("%1")' with:currentExtensionPackage).
+ self addCheckBox:b forSearchArea:#currentExtensionPackage.
+ ^ b.
+
+ "Modified: / 10-10-2006 / 15:28:51 / cg"
+!
+
addCheckBoxForCurrentNamespace
|b|
@@ -942,9 +975,14 @@
!
addCheckBoxForCurrentPackage
- |b|
+ |s b|
- b := RadioButton "CheckBox" label:(resources string:'Current Package ("%1")' with:currentPackage).
+ currentExtensionPackage isNil ifTrue:[
+ s := 'Current Package ("%1")'
+ ] ifFalse:[
+ s := 'Class''s Package ("%1")'
+ ].
+ b := RadioButton "CheckBox" label:(resources string:s with:currentPackage).
self addCheckBox:b forSearchArea:#currentPackage.
^ b.
@@ -954,7 +992,7 @@
addCheckBoxForCurrentPackage:pkg
|b|
- b := RadioButton "CheckBox" label:(resources string:'Classes'' package ("%1")' with:pkg).
+ b := RadioButton "CheckBox" label:(resources string:'Class''s package ("%1")' with:pkg).
self addCheckBox:b forSearchArea:#currentClassesPackage.
^ b.
@@ -1583,6 +1621,11 @@
methods := nil.
^ self.
].
+ where == #currentExtensionPackage ifTrue:[
+ classes := Smalltalk allClassesInPackage:currentExtensionPackage.
+ methods := nil.
+ ^ self.
+ ].
where == #currentClassesPackage ifTrue:[
classes := Smalltalk allClassesInPackage:currentClass package.
methods := nil.