Skip to content

Commit

Permalink
[feenkcom/gtoolkit#3702] lists allow users to pass execution configur…
Browse files Browse the repository at this point in the history
…ation with a stream
  • Loading branch information
syrel committed Mar 27, 2024
1 parent f4c8d92 commit 397c889
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 9 deletions.
11 changes: 10 additions & 1 deletion src/Brick-List-Grouped/BrGroupedList.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -83,5 +83,14 @@ BrGroupedList >> selectedEntityDo: aBlock [

{ #category : #'api - accessing' }
BrGroupedList >> stream: anAsyncStream [
self groupsProvider: (BrStreamItemsProvider new stream: anAsyncStream)
self
stream: anAsyncStream
executionConfiguration: BrStreamItemsProvider defaultExecutionConfiguration
]

{ #category : #accessing }
BrGroupedList >> stream: anAsyncStream executionConfiguration: anAsyncFutureExecutionConfiguration [
self groupsProvider: (BrStreamItemsProvider new
stream: anAsyncStream;
executionConfiguration: anAsyncFutureExecutionConfiguration)
]
16 changes: 14 additions & 2 deletions src/Brick-List-Ungrouped/BrUngroupedList.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,19 @@ BrUngroupedList >> scrollToItemSuchThat: aMatchBlock offset: anOffset [

{ #category : #'api - accessing' }
BrUngroupedList >> stream: anAsyncStream [
self
stream: anAsyncStream
executionConfiguration: BrStreamItemsProvider defaultExecutionConfiguration
]

{ #category : #'api - accessing' }
BrUngroupedList >> stream: anAsyncStream executionConfiguration: anAsyncFutureExecutionConfiguration [
(self viewModel itemsProvider isKindOf: BrStreamItemsProvider)
ifTrue: [ self viewModel itemsProvider stream: anAsyncStream ]
ifFalse: [ self itemsProvider: (BrStreamItemsProvider new stream: anAsyncStream) ]
ifTrue: [
self viewModel itemsProvider
stream: anAsyncStream;
executionConfiguration: anAsyncFutureExecutionConfiguration ]
ifFalse: [ self itemsProvider: (BrStreamItemsProvider new
stream: anAsyncStream;
executionConfiguration: anAsyncFutureExecutionConfiguration) ]
]
17 changes: 11 additions & 6 deletions src/Brick/BrStreamItemsProvider.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ Class {
#category : #'Brick-! Core - Item Providers'
}

{ #category : #accessing }
BrStreamItemsProvider class >> defaultExecutionConfiguration [
^ AsyncFutureExecutionConfiguration new
highPriority;
customGroup: #ScrollingList
]

{ #category : #'instance creation' }
BrStreamItemsProvider class >> forCollection: aSequenceableCollection [
^ self forStream: aSequenceableCollection asAsyncStream
Expand Down Expand Up @@ -41,9 +48,7 @@ BrStreamItemsProvider >> currentItems [

{ #category : #initialization }
BrStreamItemsProvider >> defaultExecutionConfiguration [
^ AsyncFutureExecutionConfiguration new
highPriority;
customGroup: #ScrollingList
^ self class defaultExecutionConfiguration
]

{ #category : #initialization }
Expand All @@ -63,9 +68,9 @@ BrStreamItemsProvider >> executionConfiguration [
]

{ #category : #initialization }
BrStreamItemsProvider >> executionConfiguration: anObject [
executionConfiguration := anObject.
buffer ifNotNil: [ buffer executionConfiguration: anObject ]
BrStreamItemsProvider >> executionConfiguration: anAsyncFutureExecutionConfiguration [
executionConfiguration := anAsyncFutureExecutionConfiguration.
buffer ifNotNil: [ buffer executionConfiguration: anAsyncFutureExecutionConfiguration ]
]

{ #category : #'api - loading' }
Expand Down

0 comments on commit 397c889

Please sign in to comment.