@@ -318,60 +318,22 @@ public enum SelectionMode {
318
318
*
319
319
* @see GridSingleSelectionModel
320
320
*/
321
- SINGLE {
322
- @ Override
323
- protected <T > GridSelectionModel <T > createModel (Grid <T > grid ) {
324
- return new AbstractGridSingleSelectionModel <T >(grid ) {
325
-
326
- @ SuppressWarnings ("unchecked" )
327
- @ Override
328
- protected void fireSelectionEvent (
329
- SelectionEvent <Grid <T >, T > event ) {
330
- grid .fireEvent ((ComponentEvent <Grid <T >>) event );
331
- }
332
-
333
- @ Override
334
- public void setDeselectAllowed (boolean deselectAllowed ) {
335
- super .setDeselectAllowed (deselectAllowed );
336
- grid .getElement ().setProperty ("__deselectDisallowed" ,
337
- !deselectAllowed );
338
- }
339
- };
340
- }
341
- },
321
+ SINGLE ,
342
322
343
323
/**
344
324
* Multiselection mode that maps to built-in
345
325
* {@link SelectionModel.Multi}.
346
326
*
347
327
* @see GridMultiSelectionModel
348
328
*/
349
- MULTI {
350
- @ Override
351
- protected <T > GridSelectionModel <T > createModel (Grid <T > grid ) {
352
- return new AbstractGridMultiSelectionModel <T >(grid ) {
353
-
354
- @ SuppressWarnings ("unchecked" )
355
- @ Override
356
- protected void fireSelectionEvent (
357
- SelectionEvent <Grid <T >, T > event ) {
358
- grid .fireEvent ((ComponentEvent <Grid <?>>) event );
359
- }
360
- };
361
- }
362
- },
329
+ MULTI ,
363
330
364
331
/**
365
332
* Selection model that doesn't allow selection.
366
333
*
367
334
* @see GridNoneSelectionModel
368
335
*/
369
- NONE {
370
- @ Override
371
- protected <T > GridSelectionModel <T > createModel (Grid <T > grid ) {
372
- return new GridNoneSelectionModel <>();
373
- }
374
- };
336
+ NONE ;
375
337
376
338
/**
377
339
* Creates the selection model to use with this enum.
@@ -382,7 +344,34 @@ protected <T> GridSelectionModel<T> createModel(Grid<T> grid) {
382
344
* the grid to create the selection model for
383
345
* @return the selection model
384
346
*/
385
- protected abstract <T > GridSelectionModel <T > createModel (Grid <T > grid );
347
+ protected <T > GridSelectionModel <T > createModel (Grid <T > grid ) {
348
+ return switch (this ) {
349
+ case SINGLE -> new AbstractGridSingleSelectionModel <T >(grid ) {
350
+ @ SuppressWarnings ("unchecked" )
351
+ @ Override
352
+ protected void fireSelectionEvent (
353
+ SelectionEvent <Grid <T >, T > event ) {
354
+ grid .fireEvent ((ComponentEvent <Grid <T >>) event );
355
+ }
356
+
357
+ @ Override
358
+ public void setDeselectAllowed (boolean deselectAllowed ) {
359
+ super .setDeselectAllowed (deselectAllowed );
360
+ grid .getElement ().setProperty ("__deselectDisallowed" ,
361
+ !deselectAllowed );
362
+ }
363
+ };
364
+ case MULTI -> new AbstractGridMultiSelectionModel <T >(grid ) {
365
+ @ SuppressWarnings ("unchecked" )
366
+ @ Override
367
+ protected void fireSelectionEvent (
368
+ SelectionEvent <Grid <T >, T > event ) {
369
+ grid .fireEvent ((ComponentEvent <Grid <?>>) event );
370
+ }
371
+ };
372
+ case NONE -> new GridNoneSelectionModel <>();
373
+ };
374
+ }
386
375
}
387
376
388
377
/**
0 commit comments