在ADF树中披露节点

时间:2013-11-04 17:43:05

标签: jsf tree oracle-adf

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

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

如何披露仅与某些描述相匹配的节点?在网络中,我发现只有af:基于ViewObject的树模型的例子。

2 个答案:

答案 0 :(得分:2)

看起来你没有使用ADF BC。您必须管理TreeTable的disclosureRowKeys,然后在rowDisclosureListener的处理程序中,您可以根据描述是否符合要求更新公开的RowKey。 revealRowKeys的内容是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.
  }
}

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

答案 1 :(得分:0)

披露一个树节点取决于树组件本身而不是它的模型,如果你想以编程方式公开它,请参考this article来解释那个