2

我试图将一个子元素添加到树表(元素是一个 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 的父级,结果:见图片。(p3 成为 p2 的孩子)

代码可以从这里访问:goo.gl/BMXiv

有2个主要文件:

TttestApplication.class

项目.class

CS

4

1 回答 1

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;
}

而已。

CS

于 2012-01-19T21:33:06.640 回答