protected void initAggregationTable() { Supplier<Map<String, Object>> paramsSupplier = () -> ParamsMap.of("existingItems", aggregationsDs.getItems()); CreateAction createAction = CreateAction.create(aggregationsTable); createAction.setWindowParamsSupplier(paramsSupplier); aggregationsTable.addAction(createAction); EditAction editAction = EditAction.create(aggregationsTable); editAction.setWindowParamsSupplier(paramsSupplier); aggregationsTable.addAction(editAction); aggregationsTable.addAction(RemoveAction.create(aggregationsTable)); aggregationsDs.addCollectionChangeListener(e -> { if (e.getOperation() == CollectionDatasource.Operation.REMOVE) { defaultAggregation.setOptionsDatasource(aggregationsDs); } }); }