Vaadin将儿童项目添加到treetable

时间:2012-01-18 21:31:03

标签: parent-child vaadin treetable

我试图将一个子元素添加到treetable(元素是一个Bean)但不知何故结果很奇怪。我把一个小例子放在一起。

     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

有两个主要文件:

TttestApplication.class

Project.class

1 个答案:

答案 0 :(得分:0)

不幸的是,我无法解决上面的问题,所以我通过'addProjectToTree'加载bean 一切都像通常使用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;
}

就是这样。