#UI_ENHANCEMENT by cg
authorClaus Gittinger <cg@exept.de>
Thu, 05 Mar 2020 11:18:41 +0100
changeset 19549 b60ca7d9042c
parent 19548 a6c1c4de568c
child 19550 eb2a3c37d9f3
#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
Tools__SearchDialog.st
--- 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.