17
17
import life .qbic .datamanager .views .Context ;
18
18
import life .qbic .datamanager .views .general .PageArea ;
19
19
import life .qbic .datamanager .views .general .Tag ;
20
+ import life .qbic .datamanager .views .notifications .MessageSourceNotificationFactory ;
20
21
import life .qbic .projectmanagement .application .api .AsyncProjectService ;
21
22
import life .qbic .projectmanagement .application .api .AsyncProjectService .RequestFailedException ;
22
- import life .qbic .projectmanagement .application .sample .SampleInformationService ;
23
23
import life .qbic .projectmanagement .application .sample .SamplePreview ;
24
24
import life .qbic .projectmanagement .domain .model .batch .Batch ;
25
25
import life .qbic .projectmanagement .domain .model .experiment .Experiment ;
@@ -49,10 +49,13 @@ public class SampleDetailsComponent extends PageArea implements Serializable {
49
49
private final Span countSpan ;
50
50
private final Grid <SamplePreview > sampleGrid ;
51
51
private final transient AsyncProjectService asyncProjectService ;
52
+ private final MessageSourceNotificationFactory messageFactory ;
52
53
private Context context ;
53
54
54
55
@ Autowired
55
- public SampleDetailsComponent (AsyncProjectService asyncProjectService ) {
56
+ public SampleDetailsComponent (AsyncProjectService asyncProjectService ,
57
+ MessageSourceNotificationFactory messageFactory ) {
58
+ this .messageFactory = Objects .requireNonNull (messageFactory );
56
59
this .asyncProjectService = Objects .requireNonNull (asyncProjectService );
57
60
addClassName ("sample-details-component" );
58
61
sampleGrid = createSampleGrid ();
@@ -160,7 +163,8 @@ private static Grid<SamplePreview> createSampleGrid() {
160
163
}
161
164
162
165
public void onSearchFieldValueChanged (String searchValue ) {
163
- updateSampleGridDataProvider (context .projectId ().orElseThrow (), context .experimentId ().orElseThrow (), searchValue );
166
+ updateSampleGridDataProvider (context .projectId ().orElseThrow (),
167
+ context .experimentId ().orElseThrow (), searchValue );
164
168
}
165
169
166
170
private void updateSampleGridDataProvider (ProjectId projectId , ExperimentId experimentId ,
@@ -171,19 +175,19 @@ private void updateSampleGridDataProvider(ProjectId projectId, ExperimentId expe
171
175
.collect (Collectors .toList ());
172
176
// if no order is provided by the grid order by last modified (least priority)
173
177
sortOrders .add (SortOrder .of ("sampleCode" ).ascending ());
174
- return Objects .requireNonNull (
175
- asyncProjectService .getSamplePreviews (projectId .value (), experimentId .value (),
176
- query .getOffset (), query .getLimit (), List .copyOf (sortOrders ), filter ).collectList ()
177
- .doOnError (RequestFailedException .class , this ::handleRequestFailed )
178
- .block ()).stream ();
178
+ return asyncProjectService .getSamplePreviews (projectId .value (), experimentId .value (),
179
+ query .getOffset (), query .getLimit (), List .copyOf (sortOrders ), filter )
180
+ .doOnError (RequestFailedException .class , this ::handleRequestFailed ).toStream ();
181
+
179
182
});
180
183
sampleGrid .getLazyDataView ().addItemCountChangeListener (
181
184
countChangeEvent -> setSampleCount ((int ) sampleGrid .getLazyDataView ().getItems ().count ()));
182
185
sampleGrid .recalculateColumnWidths ();
183
186
}
184
187
185
188
private void handleRequestFailed (RequestFailedException e ) {
186
-
189
+ getUI ().ifPresent (ui -> ui .access (
190
+ () -> messageFactory .toast ("sample.query.failed" , new Object []{}, getLocale ())));
187
191
}
188
192
189
193
/**
0 commit comments