代码之家  ›  专栏  ›  技术社区  ›  TaherT

如何从数据库中生成动态tree.properties文件并将其传递给richfaces的树结构

  •  1
  • TaherT  · 技术社区  · 16 年前

    如何从数据库中生成动态tree.properties文件并将其传递给richfaces的树结构。

    1 回复  |  直到 15 年前
        1
  •  1
  •   TaherT    15 年前

    实现Lucene的尼斯链接4(Hibernate Search) http://www.amin-mc.blogspot.com/

    使用przemek tremanager.java的示例

    enter code : public class TreeManager implements Serializable{
    @ManagedProperty(value="#{BuyerServiceBean}")
    BuyerServiceBean buyerServiceBean;
    
    public BuyerServiceBean getBuyerServiceBean() {
        return buyerServiceBean;
    }
    
    public void setBuyerServiceBean(BuyerServiceBean buyerServiceBean) {
        this.buyerServiceBean = buyerServiceBean;
    }
    private TreeNode<String> root = null;
    private String nodeTitle;
    private String selectedCategory;
    
    public TreeManager() {}
    
    public TreeNode getRoot() {
        if (root == null) {
            List<DepartmentMasterDataBean> c = new ArrayList<DepartmentMasterDataBean>();
            c = buyerServiceBean.treeList(0);
            TreeModel tm = null;
            tm = new TreeModel(c);
            root = tm.getRoot();
        }
        return root;
    }
    
    public void processSelection(NodeSelectedEvent event) {
        HtmlTree tree = (HtmlTree) event.getComponent();
        selectedCategory = (String)tree.getRowData();
        String test = tree.getRowKey().toString();
        Integer id = Integer.parseInt(test.substring(test.lastIndexOf(":")+1, test.length()));
        buyerServiceBean.getDepartmentMasterBindBean().setParentdeptid(id);
        setNodeTitle(selectedCategory);
    }
    
    public String getNodeTitle() {
        return nodeTitle;
    }
    
    public void setNodeTitle(String nodeTitle) {
        this.nodeTitle = nodeTitle;
    }
    
    public void setRoot(TreeNode<String> root) {
        this.root = root;
    }
    
    public String getSelectedCategory() {
        return selectedCategory;
    }
    
    public void setSelectedCategory(String selectedCategory) {
        this.selectedCategory = selectedCategory;
    }
    

    }

    Java语言

    enter code here : public class TreeModel {
    
    
    private TreeNode<String> root;
    
    public TreeModel(List<DepartmentMasterDataBean> c) {
        root = new TreeNodeImpl<String>();
        root.setParent(null);
        root.setData("Kategorie");
        createChildren(root, c);
    }
    
    private void createChildren(TreeNode<String> r, List<DepartmentMasterDataBean> ch) {
        for (DepartmentMasterDataBean c : ch) {
            TreeNode<String> nodeImpl = new TreeNodeImpl<String>();
            nodeImpl.setData(c.getDeptname());
            r.addChild(c.getDeptid(), nodeImpl);            
            if (c.getChildren() != null) {
                createChildren(nodeImpl, c.getChildren());
            }
        }
    }
    
    public TreeNode getRoot() {
        return root;
    }
    

    }

    迭代的重要方法

    enter code here : public List<DepartmentMasterDataBean> treeList(Integer deptid) {
        List<DepartmentMasterDataBean> dataBeans = new ArrayList<DepartmentMasterDataBean>();
        List<DepartmentMaster> dms = departmentMasterService.getDepartmentList("parentdeptid", Operation_enum.EQ, deptid);
        for (DepartmentMaster departmentMaster : dms) {
            dataBeans.add(_toDepartmentMasterDataBean(departmentMaster));
        }
        return dataBeans;
    }
    
    public DepartmentMasterDataBean _toDepartmentMasterDataBean(DepartmentMaster departmentMaster) {
        DepartmentMasterDataBean dmdb = new DepartmentMasterDataBean();
        List<DepartmentMasterDataBean> list1 = new ArrayList<DepartmentMasterDataBean>();
        dmdb.setDeptid(departmentMaster.getDeptid());
        dmdb.setDeptname(departmentMaster.getDeptname());
        dmdb.setParentdeptid(departmentMaster.getParentdeptid());
        dmdb.setAddress(departmentMaster.getAddress());
        dmdb.setDatentime(departmentMaster.getDatentime());
        dmdb.setPhone(departmentMaster.getPhone());
        List<DepartmentMaster> dms = new ArrayList<DepartmentMaster>();
        dms = departmentMasterService.getDepartmentList("parentdeptid", Operation_enum.EQ, departmentMaster.getDeptid());
        for (DepartmentMaster departmentMaster1 : dms) {
            list1.add(_toDepartmentMasterDataBean(departmentMaster1));
        }
        dmdb.setChildren(list1);
        return dmdb;
    }
    
    推荐文章