Vaadin添加子项目treetable
问题描述:
我试图添加一个子元素treetable(元素是一个Bean),但不知何故结果是奇怪的。我把一个小例子放在一起。Vaadin添加子项目treetable
BeanItemContainer<Project> bic = new BeanItemContainer<Project>(Project.class);
TreeTable projectTable = new TreeTable();
projectTable.setContainerDataSource(bic);
bic.addBean(Root);
bic.addBean(p1);
bic.addBean(p2);
bic.addBean(p3);
projectTable.setParent(p1, Root);
projectTable.setParent(p2, Root);
projectTable.setParent(p3, p1);
正如你可以在最后一行P1看应该是P3的父母,结果:see the pic.(P3成为P2的子女)
代码可以从这里访问:goo.gl/ BMXiv
有2个主要文件:
TttestApplication.class
Project.class
个铯
答
可惜的是,我不能在这个问题上面弄,所以我加载由“addProjectToTree” 豆类,一切发生,因为通常使用的addItem。
.... beans' initialization
Root = new Project("Projects","Indoor","HI", new Date(), new Date(),this.getNextId(),null);
...
... columns' creation
projectTable.addContainerProperty("description", String.class, "");
...
...
addProjectToTree(Root);
public Object addProjectToTree(Project p)
{
Object id = projectTable.addItem(new Object[] {p.getDescription(),p.getKeyword() ...);
if(p.getParentId()!=null)
{
projectTable.setParent(id, p.getParentId());
}
return id;
}
就是这样。
Cs
+1
在屏幕截图中你的问题的唯一解释是,P3以某种方式认为p2是root(具有相同的id可能?) – 2014-07-22 21:53:31
我认为你需要提供更多的代码来获得这方面的帮助。 – Marthin 2012-01-19 10:59:21
更多的代码可能会令人困惑,我需要一些时间来思考我做了什么。 – cscsaba 2012-01-19 13:33:57
嘿马丁,我简化了这个例子,如果你有时间检查。 – cscsaba 2012-01-19 19:12:48