问题描述
我有一个包含这两个字段的 entity
。
private boolean alarmActive;
private boolean messageHasBeenSent;
当我用 Vaadin CRUD API 展示这个时。
GridCrud<Alarm> alarmCrud = new GridCrud<>(Alarm.class);
CrudFormFactory<Alarm> crudFormFactory = new DefaultCrudFormFactory<Alarm>(Alarm.class);
alarmCrud.setCrudFormFactory(crudFormFactory);
alarmCrud.getGrid().setColumns("name","email","message","alarmActive","messageHasBeenSent","sa0Min","sa0Max","sa1Min","sa1Max","sa1dMin","sa1dMax","sa2dMin","sa2dMax","sa3dMin","sa3dMax","a0Min","a0Max","a1Min","a1Max","a2Min","a2Max","a3Min","a3Max");
alarmCrud.getGrid().setColumnReorderingAllowed(true);
crudFormFactory.setUseBeanValidation(true);
crudFormFactory.setVisibleProperties(new String[] { "name","a3Max" });
当我尝试在 CRUD 数据库中添加新行时,我得到了这个视图。
问题:
我想在同一行上有两个复选框吗?我该如何处理这个当前实体?
我知道有一种方法可以在同一行有多个复选框,但这种方法不正确,因为它取决于每个复选框都需要成为一个实体,并且该实体未连接到我的数据库 CRUD 实体。
>在下面这个例子中,他使用了
@ManyToMany
@Fetch(FetchMode.JOIN)
@NotNull
private Set<Group> groups = new HashSet<>();
在一行中创建多个复选框。问题是实体 Group
与实体 User
不同,如果它们以空开头。
在这里,他将 groupService
加载到复选框提供程序中,这会在同一行上创建多个复选框。
crud.getCrudFormFactory().setFieldProvider("groups",new CheckBoxGroupProvider<>("Groups",groupService.findAll(),Group::getName));
解决方法
也许有更好的解决方案,但一种解决方法是使用 JavaScript 在 model=ARMA(training['Y'],order=(1,0),exog=training[['A','B','C']])
model_fit=model.fit()
model_fit.forecast(steps=1,exog=data[['A','C']].iloc[-1,:])
字段后添加换行符。这应该具有使两个复选框在同一行中的效果。
为此,您需要添加一个编辑器打开的侦听器,您可以在其中执行以下代码以添加换行符
Message
,
我添加了一个组件作为列。
要做到这一点,你需要从
alarmCrud.getGrid().setColumns(...)
要分组的列,并将它们添加到 HorizontalLayout rendererd as column 中。您可以在 HorizontalLayout 中添加 CheckBox,手动绑定值。