【问题标题】:Vaadin - How add checkbox component to a tree?Vaadin - 如何将复选框组件添加到树中?
【发布时间】:2015-09-21 04:59:11
【问题描述】:

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

【问题讨论】:

  • 到目前为止你有什么? (有没有试过树编辑模式)?
  • 可编辑模式是什么意思?你的意思是tree.setReadOnly(false)

标签: checkbox tree vaadin


【解决方案1】:

据我所知,在当前最新版本(即 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());

这是输出

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多