Levente Uzonyi uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-ul.89.mcz==================== Summary ====================
Name: ToolBuilder-Morphic-ul.89
Author: ul
Time: 2 March 2013, 1:36:31.1 am
UUID: f1b278f5-477a-47b4-bc8a-eec006d343fc
Ancestors: ToolBuilder-Morphic-fbs.88
Optimized version of ListChooser>>updateFilter. Don't add any stars to the pattern if the user added some already.
=============== Diff against ToolBuilder-Morphic-fbs.88 ===============
Item was changed:
----- Method: ListChooser>>updateFilter (in category 'event handling') -----
updateFilter
+
selectedItems :=
searchText isEmptyOrNil
ifTrue: [ fullList ]
ifFalse: [ | pattern patternMatches prefixMatches |
+ pattern := (searchText includes: $*)
+ ifTrue: [ searchText ]
+ ifFalse: [ '*', searchText, '*' ].
+ patternMatches := fullList select: [:s | pattern match: s ].
+ prefixMatches := OrderedCollection new: patternMatches size.
+ patternMatches removeAllSuchThat: [ :each |
+ (each findString: searchText startingAt: 1 caseSensitive: false) = 1
+ and: [
+ prefixMatches add: each.
+ true ] ].
- pattern := (searchText beginsWith: '*')
- ifTrue: [searchText]
- ifFalse: ['*', searchText, '*'].
- prefixMatches := fullList select: [:s | (s findString: searchText startingAt: 1 caseSensitive: false) = 1].
- patternMatches := (fullList select: [:s | pattern match: s]) difference: prefixMatches.
prefixMatches addAllLast: patternMatches; yourself].
self changed: #list.
self selectedIndex: 1.
self changed: #selectedIndex.!