您的位置:首页 > 编程语言

ext+ssh中tree的实现完整代码

2014-03-06 17:47 375 查看
1.extjs中调用tree实现树列表功能

Java代码  


    goodsTree.on('click', function(node){  
            treeClicNode.id = node.id;  
            treeClicNode.text= node.text;  
            treeClicNode.depth = node.getDepth();  
            var id = node.id.split(":")[1];  
             if(node.getDepth()>=2){  
                 Ext.Ajax.request({  
                     url : '${loadName}',  
                     params:{  
                         "systemIdToTable.treeId":id  
                     },  
                     success : function(response) {  
                            var resText = Ext.util.JSON.decode(response.responseText);                        
                            if (resText.result) {  
                                commForm.getForm().reset();// 重置公共模块中所有选项  
                                                        Ext.getCmp('content-panel').layout.setActiveItem(resText.data.tableName);  
                                  Ext.get(resText.data.tableName).slideIn("r");  
                                } else {  
                                Ext.Msg.alert("提示", "操作失败!");  
                            }  
                        },  
                        failure : function(response) {  
                            Ext.Msg.alert("提示",  
                                    "<font color='red'>服务器连接失败,请联系管理员!</font>");  
                        }  
                     });  
              
            }  
        });  
  
Ext.onReady(function(){  
        var border = new Ext.Viewport({  
            layout:'border',  
            renderTo:Ext.getBody(),  
            items:[{  
                region:'center',  
                split:true,  
                border:true,  
                layout:'border',  
                items:[goodsTree]  
            }]  
        });       
});  

 2.tree实现的js代码goodsTree.js

Java代码  


var goodsTree = new Ext.tree.TreePanel({  
    id : "deptTree",  
    autoScroll : true,  
    title : "<div class=\"icon_folder\">物品列表</div>",  
    region : "west",  
    root : new Ext.tree.AsyncTreeNode({  
                id : "conGoods:1",  
                text : "物品列表"  
            }),  
    margins : '0 0 0 0',  
    layout : 'fit',  
    split : true,  
    width : 200,  
    minSize : 100,  
    maxSize : 350,  
    useArrows : true,  
    collapsible : true,// 可折叠  
    rootVisible : true,  
    bodyStyle : "background:#C5D3E7 ;"  
    });  
  
  
var selectNode = {};  
var dataUrll;  
goodsTree.on("beforeload", function(node) {  
    goodsTree.loader.dataUrl = "/KingeeAST/ast/tree/goodsTreeLoder.action?key="  
            + node.id;  
});  

 3.调用goodsTreeLoder后返回的ftl文件goodsTree.ftl

Java代码  


[  
<#list model.childConsumables as f>  
    {"id":"conGoods:${f.id!""}","text":"${f.name!""}","leaf":<#if f.childConsumables?size gt 0>false<#else>true</#if>,"check":false  
    }<#if f_has_next>,</#if>  
</#list>  
]  

 4.配置struts映射文件struts-tree.xml

Java代码  


<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE struts PUBLIC   
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    "http://struts.apache.org/dtds/struts-2.0.dtd">  
  
<struts>  
    <package name="kingee-ast-tree" extends="kingee_ast_default" namespace="/ast/tree">  
           <action name="goodsTreeLoder" class="businessTreeAction">  
            <result name="conGoods" type ="freemarker">/common/tree/goodsTree/goodsTree.ftl</result>  
           </action>  
    </package>  
</struts>  

 5.配置spring映射文件applicationContext-tree-action.xml

Java代码  


<!-- 系统树   Action -->  
        <bean id="businessTreeAction" class="com.kingee.ast.tree.action.BusinessTreeAction" scope="prototype">  
            <property name="hibernateTemplate" ref="astHibernateTemplate"></property>  
            <property name="classDefine">  
                <map>  
         <entry key="conGoods"     value="com.kingee.ast.system.pojo.SystemConsumables"></entry>  
                </map>  
            </property>  
        </bean>  

 6.树的具体实现action代码BussinessTreeAction.java

Java代码  


public class BusinessTreeAction extends ActionSupport{  
      
    private HibernateTemplate hibernateTemplate;  
      
    private Map<String, String> classDefine;  
      
    private String key;  
      
    private Object model;  
      
    @Override  
    public String execute() throws Exception {  
        if(null==key || "".equals(key)){  
            return SUCCESS;  
        }  
        String[] keys=key.split(":");  
        if(keys.length>1){   
            String type=keys[0];  
            String id=keys[1];  
            if("1".equals(id)){  
                try {  
                    Class clzz=Class.forName(classDefine.get(type));  
                    model=hibernateTemplate.get(clzz, "1");  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
            }else{  
                    model=hibernateTemplate.get(classDefine.get(type), id);  
            }  
            return type;  
        }else{  
            return SUCCESS;  
        }  
    }  
}  

 7.写出树中要展示的列表的实体类SysConsumables.java

Java代码  


public class SystemConsumables extends MunalBean{  
    private String name;  
    private String pid;  
                private String id;  
    private SystemConsumables parentConsumables;  
    private Set<SystemConsumables> childConsumables;  
}//getter和setter省略了  

 8.写出实体类hibernate的配置文件,自对自的映射systemConsumables.xml

Java代码  


<?xml version="1.0"?>  
<!DOCTYPE hibernate-mapping PUBLIC  
    "-//Hibernate/Hibernate Mapping DTD//EN"  
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >  
  
<hibernate-mapping package="com.kingee.ast.system.pojo">  
    <class  
        name="SystemConsumables"  
        table="ast_sys_consumables"  
        dynamic-update="true"  
    >  
        <meta attribute="sync-DAO">true</meta>  
        <id  
            name="Id"  
            type="string"  
            column="id"  
        >  
            <generator class="uuid.hex"/>  
        </id>  
          
        <property  
            name="name"  
            column="name"  
            type="string"  
            length="100"  
        />  
                          
        <property  
            name="deleted"  
            column="deleted"  
            type="boolean"  
        />  
          
        <many-to-one name="parentConsumables" class="com.kingee.ast.system.pojo.SystemConsumables" column="pid">  
        </many-to-one>  
          
        <set name="childConsumables" lazy="true" inverse="true" order-by=" id desc ">  
            <key column="pid"></key>  
            <one-to-many class="com.kingee.ast.system.pojo.SystemConsumables"/>  
        </set>  
          
    </class>    
</hibernate-mapping> 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: