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>
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>
相关文章推荐
- ext实现完整的登录代码
- ext实现完整的登录代码
- 彩色图像直方图均衡化及颜色直方图显示 opencv实现 完整代码及详细注释
- Python编程使用tkinter模块实现计算器软件完整代码示例
- 结合轮廓显示,实现完整的框选目标(附Demo代码)
- openssl对数组加密解密的完整实现代码-
- 基于C语言实现五子棋游戏完整实例代码
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
- 三行代码实现树形菜单(xmlTree标签实例)
- 声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码
- (转)SSDT&Shadow Hook的实现,完整代码
- 网页瀑布流布局实现方法及功能扩展(附完整代码)
- 算法#16--B树完整代码Java实现
- 如何编写出高效的数据库连接池(附带完整代码C#和Java实现) .
- 易接SDK接入:Android手游支付功能接口实现,完整代码奉上
- C语言实现大整数乘法代码的完整代码及运行结果
- 一个函数5行代码即可实现完整的面向方面AOP编程功能
- java实现客户端一键群发消息完整代码
- 实现高效的数据库连接池(附带完整代码C#和Java实现)