如何在Apache myfaces tomahawk tree2组件中获取父节点的引用

时间:2013-10-18 08:38:03

标签: java apache jsf myfaces tomahawk

我一直在使用Apache myfaces tomahawk tree2组件在我的jsf1.1网页中渲染目录结构。在支持bean中,我编写了一个递归函数调用来初始化文件夹名称和文档名称,以便在tree2组件中显示。

实例变量是:

private TreeNode treeData;
TreeNodeBase personNode=new TreeNodeBase();
TreeNodeBase folderNode;

在Method1中:

personNode = new TreeNodeBase("folder",value from the database, false);
personNode.getChildren().add(new TreeNodeBase("document", document name, true));

如果创建的文件夹有子文件夹,我会调用另一种方法来查找它的子文件夹及其文件。如果存在,则使用以下代码将文件夹添加到父文件夹。

在Method2中:

while(end of all folders list) {
folderNode = new TreeNodeBase("person", folder1, false);// add all folders
folderNode.getChildren().add(new TreeNodeBase("document", document name, true));//add document
personNode.getChildren().add(folderNode); //add sub folders to parent folder
}

绑定到组件返回的方法:

treeData.getChildren().add(personNode);
return treeData;

使用此代码,我最终将所有子文件夹添加到单个文件夹。因此,我需要获取父文件夹引用(或ID)以便将其子文件夹添加到其中。

我的问题是:如何使用此行代码获取创建的文件夹ID(或引用),或者建议以其他方式查找解决方案:

personNode = new TreeNodeBase("folder",value from the database, false);

谢谢:)

1 个答案:

答案 0 :(得分:0)

要识别每个新的 treenodebase()以便稍后引用(或使用),我们可以使用TreeNodeBase类的方法 setIdentifier()。通过这种方式,我们可以唯一地识别每个节点。

folderNode.setIdentifier(folder identification number);// where folderNode is TreeNodeBase Object and folder identification number can be any unique number for created node.