/*Extjs 树形的主要js代码*/
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL = '../js/ext/resources/images/default/s.gif';
Ext.QuickTips.init();
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
var Tree = Ext.tree; //简写
var rootNode = new Ext.tree.AsyncTreeNode({
text : 'ExtJs',
draggable:false,
id : 'js'
});
var loader = new Ext.tree.TreeLoader({
url : 'get-nodes.jsp'
});
/* loader.on("beforeload",function(treeloader,node){
loader.baseParams.id = node.attributes.id;
},loader); //一般用于测试或传递其它的参数用
*/
var tree = new Tree.TreePanel({
id : 'treePanel',
title : '树形测试',
useArrows : true,
autoScroll: true,
animate : true,
enableDD : true,
frame : true,
width : 250,
height : 500,
lines : true,
containerScroll:true,
border : false,
loader : loader,
root : rootNode,
listeners : {
click : function(node,event){
if(!node.isLeaf()){
node.toggle(); //全局节点事件监听
}
}
}
});
tree.render('tree-div');
tree.getRootNode().expand();
});
/*服务器端主要代码get-nodes.jsp*/
<jsp:directive.page import="com.hnu.tutor.bean.TreeNode"/>
<jsp:directive.page import="net.sf.json.JSONArray"/><%
String WEBROOT = getServletConfig().getServletContext().getRealPath("/");
String node = request.getParameter("node");
System.out.print("node---"+node+"\n");
String path = "";
String url = "get-nodes.jsp";
path = WEBROOT + node + "\\";
java.io.File file = new java.io.File(path);
if(file.isDirectory()){
java.util.List<TreeNode> list = new java.util.ArrayList<TreeNode>();
String [] files = file.list();
for(int i = 0; i < files.length; i++){
java.io.File temp = new java.io.File(path + files[i]);
if(!temp.isDirectory()){
TreeNode nodeTemp = new TreeNode();
nodeTemp.setId(temp.getName());
nodeTemp.setCls("");
nodeTemp.setLeaf(true);
nodeTemp.setText(temp.getName());
nodeTemp.setUrl("");
list.add(nodeTemp);
}else{
TreeNode nodeTemp = new TreeNode();
nodeTemp.setId(node+"/"+temp.getName());
nodeTemp.setCls("");
nodeTemp.setLeaf(false);
nodeTemp.setText(temp.getName());
nodeTemp.setUrl(url);
list.add(nodeTemp);
}
}
JSONArray jsonArray = JSONArray.fromObject(list);
response.getWriter().print(jsonArray);
}
%>
/*代码测试界面*/