我在Vaadin很新,面临下一个问题。我正在尝试使用Tree表示我的实体列表,并通过某些属性进行分组。一切都很好,直到第一级项目。我做了什么:
MyEntity myEntity1 = new MyEntity(1l, "prop1", "sub_prop0")
MyEntity myEntity2 = new MyEntity(2l, "prop1", "sub_prop1")
MyEntity myEntity3 = new MyEntity(3l, "prop2", "sub_prop2")
BeanContainer<Long, MyEntity > entityContainer = new BeanContainer<>(MyEntity .class);
marketContainer.setBeanIdProperty("prop"); // prop is property name for the second value in constructor
entityContainer.addBean(myEntity1);
entityContainer.addBean(myEntity2);
entityContainer.addBean(myEntity3)
Tree markets = new Tree("Markets");
markets.setContainerDataSource(entityContainer);
结果我得到了2个项目的树:prop1和prop2,但没有别的。实际上我唯一需要的是将具有值的sup元素形成另一个属性作为子项。
提前致谢。
答案 0 :(得分:1)
查看文档和找到的示例here。
简而言之:
设置子对象的父对象
// Set it to be a child.
tree.setParent(l2, l1);
如果不允许孩子,请告诉他们
/* Make the moons look like leaves. */
tree.setChildrenAllowed(l2, false);
如果您希望在Container中定义Hierachie,请使用其中一个实现HierarchicalContainer的容器。
您还可以使用setParent(...)
方法指定关系。