无法在TwinColSelect中设置值

时间:2017-06-19 21:08:55

标签: java vaadin7

我有一个TwinColSelect我尝试通过代码从值中选择,但它从来没有。

List<Role> list = new RoleJpaController(DataBaseManager.getEntityManagerFactory()).findRoleEntities();
BeanItemContainer<Role> roleContainer = new BeanItemContainer<>(Role.class, list);
TwinColSelect roles = new TwinColSelect(TRANSLATOR.translate("general.role"));

roles.setContainerDataSource(roleContainer);
roles.setRows(5);
roles.setLeftColumnCaption(TRANSLATOR.translate("available.roles"));
roles.setRightColumnCaption(TRANSLATOR.translate("current.roles"));
roles.setImmediate(true);

list.forEach(r -> {
    roles.setItemCaption(r, TRANSLATOR.translate(r.getDescription()));
});

if (user.getUserHasRoleList() != null) {
    Set<Role> rs = new HashSet<>();
    user.getUserHasRoleList().forEach(uhr -> {
        if (uhr.getProjectId() == null) {
            LOG.log(Level.INFO, "Selecting role: {0}", uhr.getRole());
            rs.add(uhr.getRole());
        }
    });
    roles.setValue(rs);
}  

我通过调试验证了执行选择角色的逻辑。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题是Role类的equals方法中的错误。修好之后就可以了。