ChangeExpandListenerを使用できます
は<rich:changeExpandListener>
、ノードの展開/折りたたみイベントで通知されるアクションリスナーメソッドを表します。
編集:
最初のchangeExpandListenerは、の属性としてdelaredする必要があります<rich:treeNode>
。これは、ツリー全体に対して宣言されている場合、書き込み時に機能します(イベントは選択イベントの後に処理されます)。それで:
<rich:tree value="#{simpleTreeBean.treeNode}" var="item" >
<rich:treeNode changeExpandListener="#{simpleTreeBean.processExpansion}">
<h:outputText value="#{item}" />
</rich:treeNode>
</rich:tree>
processExpansionメソッドはNodeExpandedEventをパラメーターとして受け取る必要がありますが、インターフェースorg.richfaces.event.NodeExpandedListenerを実装する必要はありません。
public void processExpansion(NodeExpandedEvent evt) {
Object source = evt.getSource();
if (source instanceof HtmlTreeNode) {
UITree tree = ((HtmlTreeNode) source).getUITree();
if (tree == null) {
return;
}
// get the row key i.e. id of the given node.
Object rowKey = tree.getRowKey();
// get the model node of this node.
TreeRowKey key = (TreeRowKey) tree.getRowKey();
TreeState state = (TreeState) tree.getComponentState();
if (state.isExpanded(key)) {
System.out.println(rowKey + " - expanded");
} else {
System.out.println(rowKey + " - collapsed");
}
}
}
それは役立つはずです