1

その下に子がないノードでも、richTreeでデフォルトのプラス(+)アイコンが表示されます。プラスアイコンをクリックすると消えます。リーフノード、つまり子がないノードにはプラスアイコンが表示されないようにする必要があります。

<a4j:outputPanel id="productComponentTree">
                <rich:tree id="pcTree" var="pcTreeNode" >
                    <rich:treeModelRecursiveAdaptor id="recTreeAdaptorID" 
                        roots="#{productComponentBean.productComponentList}"
                        nodes="#{pcTreeNode.financialServicesAgreementComponent}">
                        <rich:treeNode  id="treeNodeID" expanded="true"  icon="#{item.toShow?item.icon:'null'}">
                            <h:selectBooleanCheckbox id="treeNodeCheckBox"
                                disabled="#{productComponentBean.disabledCheckBox}"
                                value="#{pcTreeNode.selectedFlag}"
                                onclick="checkUncheckNodes(this);">
                            </h:selectBooleanCheckbox>
                            <h:outputText value="#{pcTreeNode.name}"></h:outputText>
                        </rich:treeNode>
                    </rich:treeModelRecursiveAdaptor>
                </rich:tree>
            </a4j:outputPanel>

上記はツリーのコードです。どんな助けでも大歓迎です。

4

1 に答える 1

0

解決策は本当に簡単です。

leafタグを treeModelRecursiveAdaptor に追加するだけです。

<rich:treeModelRecursiveAdaptor id="recTreeAdaptorID" 
                    roots="#{productComponentBean.productComponentList}"
                    nodes="#{pcTreeNode.financialServicesAgreementComponent}"
                    leaf="#{isLeaf(pcTreeNode)}">

と:

public Boolean isLeaf(Node node){
    return (node!=null && (node.children==null || node.children.size()==0));
}
于 2013-04-04T20:46:00.423 に答える