Tools__MethodList.st
changeset 18001 15b63e14e767
parent 17888 5374158eb074
child 18095 ff611a42c7c2
--- a/Tools__MethodList.st	Wed Mar 07 17:24:11 2018 +0100
+++ b/Tools__MethodList.st	Wed Mar 07 17:25:36 2018 +0100
@@ -1280,10 +1280,6 @@
     enforceClassAndProtocolInList := false.
     anyMethodToWatch := false.
 
-    "/ no longer filter those
-    "/ JV@2013-09-17: Why on hell not? A little explanation please!!
-    "/ Enabled again, because when i select package in a browser I expect
-    "/ to see only methods belonging to that package!!
     packageFilterValue := packageFilter value.
     packageFilterValue notNil ifTrue:[
         (packageFilterValue includes:self class nameListEntryForALL) ifTrue:[
@@ -1386,78 +1382,7 @@
             ].
         ].
         sortByClass := doShowClass and:[ sortBy value == #class ].
-        sortByClass ifTrue:[
-            entries
-                sort:[:a :b |
-                    |clsA clsB selA selB nmA nmB clsNmA clsNmB nsNmA nsNmB mthdA mthdB|
-
-                    clsA := a at:1. clsB := b at:1.
-                    clsNmA := clsA name.
-                    clsNmB := clsB name.
-                    clsNmA = clsNmB ifTrue:[
-                        selA := a at:2. selB := b at:2.
-                        nmA := selA asSymbol selectorWithoutNameSpace.
-                        nmB := selB asSymbol selectorWithoutNameSpace.
-                        nmA = nmB ifTrue:[
-                            mthdA := a at:3. mthdB := b at:3.
-                            nsNmA := mthdA nameSpaceName.
-                            nsNmB := mthdB nameSpaceName.
-                            nsNmA < nsNmB
-                        ] ifFalse:[ nmA < nmB ]
-                    ] ifFalse:[
-                        clsNmA < clsNmB
-                    ]
-                ].
-        ] ifFalse:[
-            sortBy value == #category ifTrue:[
-                entries
-                    sort:[:a :b |
-                        |mthdA mthdB selA selB clsA clsB nmA nmB catA catB clsNmA clsNmB nsNmA nsNmB|
-
-                        mthdA := a at:3. mthdB := b at:3.
-                        catA := mthdA category.
-                        catB := mthdB category.
-                        catA = catB ifTrue:[
-                            selA := a at:2. selB := b at:2.
-                            nmA := selA asSymbol selectorWithoutNameSpace.
-                            nmB := selB asSymbol selectorWithoutNameSpace.
-                            nmA = nmB ifTrue:[
-                                clsA := a at:1. clsB := b at:1.
-                                clsNmA := clsA name.
-                                clsNmB := clsB name.
-                                clsNmA = clsNmB ifTrue:[
-                                    nsNmA := mthdA nameSpaceName.
-                                    nsNmB := mthdB nameSpaceName.
-                                    nsNmA < nsNmB
-                                ] ifFalse:[
-                                    clsNmA < clsNmB
-                                ]
-                            ] ifFalse:[ nmA < nmB ]
-                        ] ifFalse:[
-                            catA < catB
-                        ]
-                    ].
-            ] ifFalse:[
-                entries
-                    sort:[:a :b |
-                        |nmA nmB clsNmA clsNmB nsNmA nsNmB|
-
-                        nmA := (a at:2) asSymbol selectorWithoutNameSpace.
-                        nmB := (b at:2) asSymbol selectorWithoutNameSpace.
-                        nmA = nmB ifTrue:[
-                            clsNmA := (a at:1) name.
-                            clsNmB := (b at:1) name.
-                            clsNmA = clsNmB ifTrue:[
-                                nsNmA := (a at:3) nameSpaceName.
-                                nsNmB := (b at:3) nameSpaceName.
-                                nsNmA < nsNmB
-                            ] ifFalse:[
-                                clsNmA < clsNmB
-                            ]
-                        ] ifFalse:[ nmA < nmB ]
-                    ].
-            ].
-        ].
+        self sortEntries:entries showingClass:doShowClass.
     ].
     methods := OrderedCollection new:(entries size).
     methodNameList := OrderedCollection new:(entries size).
@@ -1716,6 +1641,85 @@
     ^ set
 !
 
+sortEntries:entries showingClass:doShowClass
+    |sortByClass|
+
+    sortByClass := doShowClass and:[ sortBy value == #class ].
+    sortByClass ifTrue:[
+        entries
+            sort:[:a :b |
+                |clsA clsB selA selB nmA nmB clsNmA clsNmB nsNmA nsNmB mthdA mthdB|
+
+                clsA := a at:1. clsB := b at:1.
+                clsNmA := clsA name.
+                clsNmB := clsB name.
+                clsNmA = clsNmB ifTrue:[
+                    selA := a at:2. selB := b at:2.
+                    nmA := selA asSymbol selectorWithoutNameSpace.
+                    nmB := selB asSymbol selectorWithoutNameSpace.
+                    nmA = nmB ifTrue:[
+                        mthdA := a at:3. mthdB := b at:3.
+                        nsNmA := mthdA nameSpaceName.
+                        nsNmB := mthdB nameSpaceName.
+                        nsNmA < nsNmB
+                    ] ifFalse:[ nmA < nmB ]
+                ] ifFalse:[
+                    clsNmA < clsNmB
+                ]
+            ].
+        ^ self.
+    ].
+
+    sortBy value == #category ifTrue:[
+        entries
+            sort:[:a :b |
+                |mthdA mthdB selA selB clsA clsB nmA nmB catA catB clsNmA clsNmB nsNmA nsNmB|
+
+                mthdA := a at:3. mthdB := b at:3.
+                catA := mthdA category.
+                catB := mthdB category.
+                catA = catB ifTrue:[
+                    selA := a at:2. selB := b at:2.
+                    nmA := selA asSymbol selectorWithoutNameSpace.
+                    nmB := selB asSymbol selectorWithoutNameSpace.
+                    nmA = nmB ifTrue:[
+                        clsA := a at:1. clsB := b at:1.
+                        clsNmA := clsA name.
+                        clsNmB := clsB name.
+                        clsNmA = clsNmB ifTrue:[
+                            nsNmA := mthdA nameSpaceName.
+                            nsNmB := mthdB nameSpaceName.
+                            nsNmA < nsNmB
+                        ] ifFalse:[
+                            clsNmA < clsNmB
+                        ]
+                    ] ifFalse:[ nmA < nmB ]
+                ] ifFalse:[
+                    catA < catB
+                ]
+            ].
+        ^ self.
+    ].
+    entries
+        sort:[:a :b |
+            |nmA nmB clsNmA clsNmB nsNmA nsNmB|
+
+            nmA := (a at:2) asSymbol selectorWithoutNameSpace.
+            nmB := (b at:2) asSymbol selectorWithoutNameSpace.
+            nmA = nmB ifTrue:[
+                clsNmA := (a at:1) name.
+                clsNmB := (b at:1) name.
+                clsNmA = clsNmB ifTrue:[
+                    nsNmA := (a at:3) nameSpaceName.
+                    nsNmB := (b at:3) nameSpaceName.
+                    nsNmA < nsNmB
+                ] ifFalse:[
+                    clsNmA < clsNmB
+                ]
+            ] ifFalse:[ nmA < nmB ]
+        ].
+!
+
 updateList
     |prevSelection newList newSelection newSelIdx reverseMap sameContents newListSize oldListSize
      prevClasses methodSet selectedMethodsHolder|