0

我在 jsff 页面中使用 af:tree ADF 组件。af:tree 中使用的模型是这样的一个类(这个类不是基于 ViewObject):

public class TreeItem {
  String description;
  List<TreeItem> children;
}

如何披露仅匹配某些描述的节点?在网上,我只找到了基于 ViewObject 的 af:tree 模型的示例。

4

2 回答 2

2

看起来您没有使用 ADF BC。您必须管理 TreeTable 的公开RowKeys,然后在 rowDisclosureListener 的处理程序中,您可以根据描述是否符合要求来更新公开的RowKeys。公开的RowKeys 的内容是RowKeySet 的实例。

<af:treeTable disclosedRowKeys="#{myBean.disclosedRowKeys}" 
              rowDisclosureListener="#{myViewBean.handleRowDisclosure}">
</af:treeTable>

在豆子里:

class MyPageBean{
  RowKeySet disclosedRowKeys;
  //getters and setters.
}

在视图 bean 中:

class MyViewBean{
  public void handleRowDisclosure(RowDisclosureEvent event)
  {
    //get the addedSet OR removedSet - because the event can be expanding or collapsing row.
    //obtain the collection model from the tree table.
    //use the above collection model and the addedSet OR removedSet to get the exact instance of TreeItem.
    if TreeItem.description is satisfied then
      getDisclosedRowKeys from the page model and then add/remove the keys obtained in the addedSet OR removedSet.

    partially refresh the treeTable.
  }
}

我目前无法尝试这种逻辑。但是一旦我回到工作岗位会试一试。

于 2013-11-05T18:25:32.130 回答
0

公开树节点取决于树组件本身而不是它的模型,如果你想以编程方式公开它,请参阅这篇文章,它准确地解释了这一点

于 2013-11-05T11:33:38.737 回答