Vaadin - 如何将复选框组件添加到树中?

时间:2015-09-21 04:59:12

标签: checkbox tree vaadin

我使用Vaadin 7.5.3开发Web应用程序。在那里,我需要一个具有可选节点的树。我想使用复选框选择节点。在尝试了很多方法和goggling后,我找不到如何将CheckBox组件添加到树节点。

2 个答案:

答案 0 :(得分:5)

根据我的知识,直到当前的最新版本,即Vaadin 7.5.6,这是不可能的,正如Jouni在这个discussion on their forums中指出的那样。他也开了an improvement ticket但到目前为止我还没有看到任何变化。

尽管如此,您应该可以使用TreeTable component 伪造它。你可以找到here一个完整的例子,下面是摘录:

final TreeTable ttable = new TreeTable("My TreeTable");
ttable.addContainerProperty("Name", CheckBox.class, "");
ttable.addContainerProperty("City", String.class, "");
ttable.setWidth("20em");

// Create the tree nodes
ttable.addItem(new Object[]{new CheckBox("Root"), "Helsinki"}, 0);
ttable.addItem(new Object[]{new CheckBox("Branch 1"), "Tampere"}, 1);
ttable.addItem(new Object[]{new CheckBox("Branch 2"), "Turku"}, 2);
ttable.addItem(new Object[]{new CheckBox("Leaf 1"), "Piikkiö"}, 3);
ttable.addItem(new Object[]{new CheckBox("Leaf 2"), "Parainen"}, 4);
ttable.addItem(new Object[]{new CheckBox("Leaf 3"), "Raisio"}, 5);
ttable.addItem(new Object[]{new CheckBox("Leaf 4"), "Naantali"}, 6);

// Set the hierarchy
ttable.setParent(1, 0);
ttable.setParent(2, 0);
ttable.setParent(3, 1);
ttable.setParent(4, 1);
ttable.setParent(5, 2);
ttable.setParent(6, 2);

// Expand the tree
ttable.setCollapsed(2, false);
for (Object itemId: ttable.getItemIds())
    ttable.setCollapsed(itemId, false);

ttable.setPageLength(ttable.size());

这是输出

checkbox in tree

答案 1 :(得分:1)

这是一个老问题,所以对于它的价值:Vaadin演示页面有一个这样的例子:

http://demo.vaadin.com/book-examples/book#component.tree.itemstylegenerato