- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个枚举:
public enum Roles {
USER,ADMIN;
}
我的表单上有一个 CheckBoxGroup:
private CheckBoxGroup<String> rolesCheckbox = new CheckBoxGroup<>("User roles");
绑定(bind)到此表单的 User 类的实例有一个字段:
private List<Roles> roles;
我现在想做的只是在打开特定用户实例的表单时检查正确的复选框。我可能必须在 binder.forField 中做一些事情,但我真的不知道如何做:
binder.forField(rolesCheckbox).bind(...
最佳答案
example from the Vaadin docs为了简洁起见,使用String
,但您可以轻松地使用对象。假设您有一个 Role
枚举和一个 User
,如下所示:
// possible roles
public enum Role {
ADMIN, USER, GUEST
}
// bean for binding
public class User {
private Set<Role> roles;
private String name;
public User(String name, Set<Role> roles) {
this.roles = roles;
this.name = name;
}
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"roles=" + roles +
", name='" + name + '\'' +
'}';
}
}
...您可以创建类似于以下内容的表单:
public class CheckboxEnumBinding extends VerticalLayout {
public CheckboxEnumBinding() {
// form components
TextField nameTextField = new TextField("Name");
CheckBoxGroup<Role> roleCheckBoxGroup = new CheckBoxGroup<>("Roles", DataProvider.ofItems(Role.values()));
// binder setup
Binder<User> userBinder = new Binder<>();
// name binding
userBinder.forField(nameTextField)
.asRequired("Please provide a user name")
.bind(User::getName, User::setName);
// role binding
userBinder.forField(roleCheckBoxGroup)
.asRequired("Please select at least one role")
.bind(User::getRoles, User::setRoles);
// bind to bean
userBinder.setBean(new User("Morfic", EnumSet.of(Role.ADMIN, Role.GUEST)));
// simulate a save action
Button saveButton = new Button("Save", event -> Notification.show("Saved new user info: " + userBinder.getBean()));
// add fields to the UI
addComponents(nameTextField, roleCheckBoxGroup, saveButton);
}
}
结果:
<小时/>奖励:默认情况下,Vaadin 将使用枚举名称来显示值。如果您想要不同的东西,例如仅将第一个字母大写,您可以使用 ItemCaptionGenerator
:
// spring boot app, don't reinvent the wheel
import org.springframework.util.StringUtils;
...
roleCheckBoxGroup.setItemCaptionGenerator(role -> StringUtils.capitalize(role.name().toLowerCase()));
关于java - 将 List<Enum> 绑定(bind)到 vaadin 中的 CheckBoxGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863202/
我做错了什么?我正在尝试将复选框组添加到 jpanel1.但我真的不明白为什么不起作用? 附注GUI 是由 NetBeans matisse 制作的,然后我在新类中手动编辑代码。谢谢 Checkbox
我有一个如下定义的复选框组。 (复选框组在 Controller 中定义了一个“更改”事件,我希望这在这里无关紧要。) 处理程序显示以下问题: 当尝试访问 startItems 复选框的 checkb
如何创建 JCheckBox 对象的 CheckBoxGroup?我使用: CheckboxGroup cg = new CheckboxGroup(); JCheckBox c1 = new JCh
我想在作为表单面板一部分的复选框组中获取所有选中的项目。最终它们将作为字符串、逗号分隔值格式保存回数据库。 感谢您提供的任何指导或帮助。 这是我定义组的方式: new Ext.form.Checkbo
好的,这是一小段代码(ExtJs 4): var TestA = function() {} TestA.prototype.createCheckboxes = function()
Bokeh 像这样渲染复选框 Label text 但我想根据输入状态选择标签 :focus, :disabled, :checked, ..
您可以迭代/循环所有已添加到 CheckboxGroup 的复选框控件吗?如果是这样,该怎么办?如果不是,CheckboxGroup 的用途是什么? 最佳答案 foreach(Control c in
目的:我需要以编程方式设置某些 CheckboxGroup 选项的“checked”属性。 我知道 CheckboxGroup 包含一个选项数组,每个选项都包含一个名称和一个值。 我无法理解 Wix
我正在制作一个 Shiny 的应用程序来根据上传的数据创建绘图。输入文件中的一列是一个类别。我想为每个独特的类别创建一个复选框,但我认为我遗漏了一些东西。用户界面 fluidPage( tit
我正在寻找如何检查已呈现并包含项目集的 Ext.form.CheckboxGroup 组件中的项目的解决方案。 组件代码为: var oCheckboxGroup = new Ext.form.Che
使用 ExtJS 4,我有一个 Ext.form.CheckboxGroup,我想对这个复选框组进行验证,例如“仅当选中 1、2 或 3 个复选框时才有效”大概 10 个复选框。我可以设置一个现有的
我有一个如下: Orders Production Dispatch Returns Sundry Collection Pending Amount Pending
我有一个带有 checkboxGroup 的窗口。我希望在按下窗口上的“应用”按钮时保存在 checkboxGroup 中所做的任何选择。到目前为止我已经 xtype:
我有一个显示 8 个项目的 CheckBoxGroup。默认的呈现方式是垂直的,这在我的布局中看起来不太好。 但是如果我使用 将演示文稿设置为水平 checkBoxGroup.addStyleName
我正在尝试使用从 jsp 页面中提取的 JSON 对象派生的 Ext.form.Checkbox 动态填充 Ext.form.CheckboxGroup。我的 JSON 对象如下所示: { "
我正在寻找一种方法来在单列 (Orientation.VERTICAL) 或单行 (Orientation.HORIZONTAL) 以外的布局中呈现 GXT (GWT-Ext) RadioGroup
我正在努力检测绑定(bind)到 bean 的 CheckBoxGroup 中项目的取消选择。这是一个简化的示例: 我有一个类(class)人: package com.vaadin.test; im
我有一个枚举: public enum Roles { USER,ADMIN; } 我的表单上有一个 CheckBoxGroup: private CheckBoxGroup rolesChec
目前唯一可用的选项似乎是 border=x,其中 x 是边框的粗细。它看起来非常丑陋,因为它概述了组中的每个选择。 我想要一个简单的边框围绕所有的选择。当我进行调试时,我可以手动将 fram="box
我是一名优秀的程序员,十分优秀!