list - Vaadin:在表中显示列表

标签 list class vaadin

我需要在表格中显示列表中包含的所有值。

例如:

class Person {
    String name;
    String age;
    List<Rule> rules;
}

我期望的结果:

|name    |age     |rules
 alex     22       administrator, user, etc..

其中管理员和用户属于 Rule.name 属性

有人知道怎么做吗?

最佳答案

您应该能够添加生成的列并根据需要格式化列表中的值。你可以找到一个例子 here ,只需向下滚动到5.16.5 生成的表格列

一章

由于您没有发布任何代码,我不知道您是如何设置表格的。为了方便起见,我创建了一个带有 BeanItemContainer<Person> 的简单表格。并且我添加了一个“规则”生成列。有改进的余地,但你应该明白:

    BeanItemContainer<Person> dataSource = new BeanItemContainer<Person>(Person.class);
    table_1.setContainerDataSource(dataSource);
    // create generated column and specify our "generator/formatter"
    table_1.addGeneratedColumn("rules", new RuleGenerator());
    dataSource.addAll(new ArrayList<Person>(){{add(new Person());}});

格式化器/生成器:

public class RuleGenerator implements Table.ColumnGenerator {
    @Override
    public Object generateCell(Table source, Object itemId, Object columnId) {
        Label label = new Label();
        StringBuilder labelContent = new StringBuilder();
        for(Rule rule : ((Person) itemId).getRules()){
           labelContent.append(rule.getName()).append(",");
        }
        label.setValue(labelContent.toString());
        return label;
    }
}

这是我得到的:

Output

关于list - Vaadin:在表中显示列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19521671/

相关文章:

Java Eclipse 通过 Tomcat 连接 MySQL

html - 带有按钮的可扩展目录

具有 PDO 的基于 PHP 类的用户系统 - 在非对象上调用成员函数 prepare()

C# - 有没有理由不实例化一个类并在一行代码中使用它?

具有参数和比较的 C++ 类

java - 具有返回类型的事件处理程序

python - 如何从python列表的每个元素中删除前缀?

python - 列表索引必须不是列表

python - 从不可变类型继承

vaadin - 如何选择vaadin表中的所有行?