Tools__MethodList.st
changeset 17782 ee0d1bfafb04
parent 17780 1b645a397968
child 17784 ce86bb77b36f
equal deleted inserted replaced
17781:5cb19a5a9277 17782:ee0d1bfafb04
   785         self invalidateList.
   785         self invalidateList.
   786         ^  self
   786         ^  self
   787     ].
   787     ].
   788 
   788 
   789     changedObject == selectedMethodNameIndices ifTrue:[
   789     changedObject == selectedMethodNameIndices ifTrue:[
   790         newSelection := self selectedMethodNameIndices value collect:[:idx | methodList at:idx].
   790         newSelection := self selectedMethodNameIndices value 
       
   791                             reject:[:idx | idx > methodList size]
       
   792                             thenCollect:[:idx | methodList at:idx].
   791         newSelection ~= selection ifTrue:[
   793         newSelection ~= selection ifTrue:[
   792             selectionHolder value:newSelection.
   794             selectionHolder value:newSelection.
   793             lastSelectedMethods := newSelection.
   795             lastSelectedMethods := newSelection.
   794             lastSelectedMethods notNil ifTrue:[
   796             lastSelectedMethods notNil ifTrue:[
   795                 lastSelectedMethods := lastSelectedMethods asOrderedCollection
   797                 lastSelectedMethods := lastSelectedMethods asOrderedCollection
   851 "/    ].
   853 "/    ].
   852     super delayedUpdate:something with:aParameter from:changedObject
   854     super delayedUpdate:something with:aParameter from:changedObject
   853 
   855 
   854     "Created: / 05-02-2000 / 13:42:14 / cg"
   856     "Created: / 05-02-2000 / 13:42:14 / cg"
   855     "Modified: / 24-08-2013 / 00:41:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   857     "Modified: / 24-08-2013 / 00:41:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   856     "Modified: / 09-11-2017 / 19:53:17 / cg"
   858     "Modified: / 25-11-2017 / 12:38:41 / cg"
   857 !
   859 !
   858 
   860 
   859 hideSelectorNameFilter
   861 hideSelectorNameFilter
   860     self showSelectorNameFilter value:false.
   862     self showSelectorNameFilter value:false.
   861 
   863 
  1222     |methods entries selectorBag newNameList allClasses newClasses
  1224     |methods entries selectorBag newNameList allClasses newClasses
  1223      allCategories                 "allSelectors"
  1225      allCategories                 "allSelectors"
  1224      generator doShowClass doShowClassFirst doShowCategory enforceClassAndProtocolInList
  1226      generator doShowClass doShowClassFirst doShowCategory enforceClassAndProtocolInList
  1225      theMethod sortByClass anyMethodToWatch mclass
  1227      theMethod sortByClass anyMethodToWatch mclass
  1226      packageFilterValue nameListEntryForExtensions
  1228      packageFilterValue nameListEntryForExtensions
  1227      suppressInheritanceInfoNow startTime|
  1229      suppressInheritanceInfoNow startTime numFiltered|
  1228 
  1230 
  1229     suppressInheritanceInfoNow := (showMethodInheritance value ? true) not.
  1231     suppressInheritanceInfoNow := (showMethodInheritance value ? true) not.
  1230     startTime := Timestamp now.
  1232     startTime := Timestamp now.
  1231 
  1233 
  1232     generator := inGeneratorHolder value.
  1234     generator := inGeneratorHolder value.
  1256     ].
  1258     ].
  1257 
  1259 
  1258     "/ generator generates nil-selector entries
  1260     "/ generator generates nil-selector entries
  1259     "/ to pass multiple-class and multiple-protocol info
  1261     "/ to pass multiple-class and multiple-protocol info
  1260     nameListEntryForExtensions := self class nameListEntryForExtensions.
  1262     nameListEntryForExtensions := self class nameListEntryForExtensions.
  1261 
  1263     numFiltered := 0.
       
  1264     
  1262     generator do:[:cls :cat :sel :mthd |
  1265     generator do:[:cls :cat :sel :mthd |
  1263         |categoryIsExtensionsPseudoCategory|
  1266         |categoryIsExtensionsPseudoCategory|
  1264 
  1267 
  1265         (sel isNil 
  1268         (sel isNil 
  1266         or:[ nameFilter isEmptyOrNil
  1269         or:[ nameFilter isEmptyOrNil
  1267         or:[ nameFilter = '*'
  1270         or:[ nameFilter = '*'
  1268         or:[ self isNameFilterMatchingSelector:sel method:mthd]]]) ifTrue:[
  1271         or:[ ((self isNameFilterMatchingSelector:sel method:mthd) 
  1269             
  1272                 ifFalse:[ numFiltered := numFiltered + 1. false]
       
  1273                 ifTrue:[true]) ]]]
       
  1274         ) ifTrue:[
  1270             categoryIsExtensionsPseudoCategory := (cat = nameListEntryForExtensions).
  1275             categoryIsExtensionsPseudoCategory := (cat = nameListEntryForExtensions).
  1271             (cls isNil and:[ cat isNil and:[ sel isNil ] ]) ifTrue:[
  1276             (cls isNil and:[ cat isNil and:[ sel isNil ] ]) ifTrue:[
  1272                 enforceClassAndProtocolInList := true
  1277                 enforceClassAndProtocolInList := true
  1273             ] ifFalse:[
  1278             ] ifFalse:[
  1274                 cls notNil ifTrue:[
  1279                 cls notNil ifTrue:[
  1453         newNameList add:s.
  1458         newNameList add:s.
  1454 
  1459 
  1455         methods add:mthd.
  1460         methods add:mthd.
  1456         methodNameList add:{ cls name . sel}.
  1461         methodNameList add:{ cls name . sel}.
  1457     ].
  1462     ].
       
  1463 
       
  1464     numFiltered ~~ 0 ifTrue:[
       
  1465         newNameList add:(('* %1 methods filtered (not containing pattern) *' bindWith:numFiltered) withColor:Color gray).
       
  1466         "/ methods add:nil.
       
  1467         "/ methodNameList add:{ nil . nil}.
       
  1468     ].
  1458     
  1469     
  1459     self makeIndependent.
  1470     self makeIndependent.
  1460     classes := newClasses.
  1471     classes := newClasses.
  1461     self makeDependent.
  1472     self makeDependent.
  1462     methodList := methods.
  1473     methodList := methods.
  1489     ^ newNameList.
  1500     ^ newNameList.
  1490 
  1501 
  1491     "Created: / 05-02-2000 / 22:43:40 / cg"
  1502     "Created: / 05-02-2000 / 22:43:40 / cg"
  1492     "Modified: / 24-08-2010 / 20:34:09 / Jan Vrany"
  1503     "Modified: / 24-08-2010 / 20:34:09 / Jan Vrany"
  1493     "Modified (comment): / 17-09-2013 / 10:31:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1504     "Modified (comment): / 17-09-2013 / 10:31:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1494     "Modified: / 25-11-2017 / 12:04:50 / cg"
  1505     "Modified: / 25-11-2017 / 12:39:24 / cg"
  1495 !
  1506 !
  1496 
  1507 
  1497 makeDependent
  1508 makeDependent
  1498     environment addDependent:self.
  1509     environment addDependent:self.
  1499 "/    ChangeSet addDependent:self.
  1510 "/    ChangeSet addDependent:self.