2011-03-30 64 views

回答

0

我其實是猜你的問題。我並不完全確定你的意思,但我會打一針。它可能會幫助你。

這是來自我的一箇舊項目。我也建議現在使用Primefaces。更容易合作,更容易主題,更快(從我的經驗),和更多的組件。

<ice:tree id="tree" 
          value="#{TreeController.model}" 
          var="node" 
          hideRootNode="false" 
          hideNavigation="false" 
          imageDir="./xmlhttp/css/rime/css-images/"> 
        <ice:treeNode> 
         <f:facet name="icon"> 
          <ice:panelGroup style="display: inline"> 
           <h:graphicImage value="#{node.userObject.icon}"/> 
          </ice:panelGroup> 
         </f:facet> 
         <f:facet name="content"> 
          <ice:panelGroup style="display: inline"> 
           <ice:commandLink disabled="#{!PkgLineTableController.tableRendered}" 
               actionListener="#{TreeController.locationNodeSelected}"> 
            <f:param name="treeId" 
              value="#{node.userObject.tree.treeId}"/> 
            <f:param name="name" value="#{node.userObject.text}"/> 
            <ice:outputText id="TreeNode" 
                value="#{node.userObject.text}"/> 
           </ice:commandLink> 
          </ice:panelGroup> 
         </f:facet> 
        </ice:treeNode> 
       </ice:tree> 

支持bean:

private DefaultMutableTreeNode findTreeNode(String nodeId) { 

     DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) getModel().getRoot(); 
     DefaultMutableTreeNode node; 
     TreeObject tmp; 
     Enumeration nodes = rootNode.depthFirstEnumeration(); 
     while (nodes.hasMoreElements()) { 
      node = (DefaultMutableTreeNode) nodes.nextElement(); 
      tmp = (TreeObject) node.getUserObject(); 
      if (nodeId.equals(String.valueOf(tmp.getTree().getTreeId()))) { 
       return node; 
      } 
     } 
     return null; 
    } 

    /** 
    * Method fired when a node is selected on the tree. This calls a few methods from the packageLineBean to build the 
    * package line list. 
    */ 
    public void locationNodeSelected(ActionEvent event) { 

     PkgLineTableController pkgLineTableController = PkgLineTableController.getCurrentInstance(); 

     String tree_id = FacesUtils.getRequestParameter("treeId"); 
     selectedTreeNodeName = FacesUtils.getRequestParameter("name"); 
     DefaultMutableTreeNode node = findTreeNode(tree_id); 
     selectedTreeObject = ((TreeObject) node.getUserObject()); 

     pkgLineTableController.getPkgLineTreeList().clear(); 
     pkgLineTableController.digPackageLines(Integer.parseInt(tree_id)); 
     pkgLineTableController.setEffect(new Appear()); 

     WrapSpecTableController.getCurrentInstance().getWrapSpecList().clear(); 
    } 
相關問題