web-dev-qa-db-ja.com

treeTableのすべてのノードを展開する方法は?

ツリーテーブルと2つのボタンがあります。

  • 木を倒すためのものと
  • もう1つは拡張用で、

しかし、それらは機能しません。バッキングBeanでroot.setExpanded(true);root.setExpanded(false);を実行しましたが、機能しません。

<center>
    <p:treeTable value="#{roleMB.root}" var="roleTreeTableVar"
        binding="#{roleMB.treeTable}" id="roleTreeTable">
        <f:facet name="header">
            <center>
                <p:commandButton value="Réduire tout"
                    icon="ui-icon-folder-collapsed" style="font-size: 0.9em" 
                    actionListener="#{roleMB.expandAll}" 
                    update=":roleTreeTableForm:roleTreeTable"  />
                <p:spacer width="30px" />
                <p:commandButton value="Développer tout"
                    icon="ui-icon-folder-open" style="font-size: 0.9em"  
                    actionListener="#{roleMB.collapseAll}" 
                    update=":roleTreeTableForm:roleTreeTable"  />
                <p:spacer width="30px" />
            </center>
        </f:facet>

        <p:column style="width:150px">
            <f:facet name="header"> 
                Nom de Role 
            </f:facet>
            <h:outputText value="#{roleTreeTableVar.nom}" />
        </p:column>

        <p:column style="width:100px">
            <f:facet name="header"> 
                Id de role 
            </f:facet>
            <h:outputText value="#{roleTreeTableVar.id}" />
        </p:column>

        <p:column style="width:20px">
            <p:commandLink oncomplete="dlgAddRole.show()" value="Ajouter"
                update=":addRoleForm:selectRolesNamesId">
                <f:setPropertyActionListener value="#{roleTreeTableVar}"
                    target="#{roleMB.selectedRole}" />
            </p:commandLink>
            <p:commandLink oncomplete="delRole.show()" value="Supprimer">
                <f:setPropertyActionListener value="#{roleTreeTableVar}"
                    target="#{roleMB.selectedRole}" />
            </p:commandLink>
            <p:commandLink oncomplete="editRole.show()" value="Modifier">
                <f:setPropertyActionListener value="#{roleTreeTableVar}"
                    target="#{roleMB.selectedRole}" />
            </p:commandLink>
        </p:column>
    </p:treeTable>
</center>
14
BenMansourNizar

これは、CollapseとExpandeの再帰的な方法です。

public void collapsingORexpanding(TreeNode n, boolean option) {
    if(n.getChildren().size() == 0) {
        n.setSelected(false);
    }
    else {
        for(TreeNode s: n.getChildren()) {
            collapsingORexpanding(s, option);
        }
        n.setExpanded(option);
        n.setSelected(false);
    }
}
  • 変数nは、展開または縮小するノードです。
  • 変数オプションがfalseの場合、nのすべての子が折りたたまれ、別の場合は展開されます
  • setSelected(false)は、このノードが選択されていないことを示します
16
fylex

ルートノードだけでなく、すべての子ノードに対しても、expandedプロパティをtrueに設定する必要があります。

8
alpha2011