File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
src/GToolkit-Coder-StreamingCoders Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,32 @@ GtFilteredCodersModel >> addOrReplaceFilter: aFilter [
3535 self additionalFilters: newFilters
3636]
3737
38+ { #category : #' api - accessing' }
39+ GtFilteredCodersModel >> addOrReplaceFilters: aCollectionOfFilters [
40+ " Add or replace given additional filters.
41+ Each filter of the same filter type (class) is replaced by the given filters."
42+
43+ | newFilters isChanged usedFilters |
44+
45+ isChanged := false .
46+ usedFilters := OrderedCollection new .
47+ newFilters := self additionalFilters
48+ collect: [ :existingFilter |
49+ aCollectionOfFilters
50+ detect: [ :givenFilter |
51+ existingFilter filterType = givenFilter filterType ]
52+ ifFound: [ :givenFilter |
53+ isChanged := true .
54+ usedFilters add: givenFilter.
55+ givenFilter ]
56+ ifNone: [
57+ existingFilter ] ].
58+
59+ isChanged ifFalse: [
60+ newFilters := newFilters , (aCollectionOfFilters copyWithoutAll: usedFilters) ].
61+ self additionalFilters: newFilters
62+ ]
63+
3864{ #category : #' api - accessing' }
3965GtFilteredCodersModel >> additionalFilters [
4066 < return: #Collection of: #GtSearchFilter >
You can’t perform that action at this time.
0 commit comments