treeNode: //树节点操作
{
findByID: function(tree, ID) {//查找树节点
//var newNode = new Ext.data.NodeInterface(node);
var fNode = null;
var root = tree.getRootNode();
if (root.data.id == ID) {
return root;
}
var stop = false;
function findNode(cNodes) {
if (stop) {
return;
}
Ext.each(cNodes.childNodes, function(cNode) {
if (stop) {
return;
}
if (cNode.data.id == ID) {
fNode = cNode;
stop = true;
}
findNode(cNode);
})
};
findNode(root);
return fNode;
},
add: function(tree, node) {//新增树节点
var me = this;
var pNode = me.findByID(tree, node.PID);
if (pNode) {
var isAdd = pNode.isLoaded();
isAdd = pNode.isLeaf() ? true : isAdd;
pNode.data.leaf = false;
isAdd ? pNode.appendChild(node) : 1;
}
},
del: function(tree, node) {//删除树节点
var me = this;
var node = me.findByID(tree, node.id);
if (node) {
var pNode = node.parentNode;
pNode.removeChild(node);
if (pNode.childNodes.length == 0 && !pNode.data.leaf) {
pNode.data.leaf = true;
pNode.parentNode.replaceChild(pNode, pNode);
}
}
return node;
},
edit: function(tree, node) {//编辑树节点
var me = this;
var oldNode = me.findByID(tree, node.id);
if (oldNode) {
Ext.applyIf(node, oldNode.data);
if (node.leaf == false) {
node.loaded = false;
}
node.PID = !node.PID ? node.parentId : node.PID;
node.parentNodeId = !node.parentNodeId ? node.parentId : node.parentNodeId;
node.parentId = node.PID;
if (node.PID === oldNode.data.parentId) {
oldNode.parentNode.replaceChild(node, oldNode);
return;
}
}
me.del(tree, node);
me.add(tree, node);
}
},
{
findByID: function(tree, ID) {//查找树节点
//var newNode = new Ext.data.NodeInterface(node);
var fNode = null;
var root = tree.getRootNode();
if (root.data.id == ID) {
return root;
}
var stop = false;
function findNode(cNodes) {
if (stop) {
return;
}
Ext.each(cNodes.childNodes, function(cNode) {
if (stop) {
return;
}
if (cNode.data.id == ID) {
fNode = cNode;
stop = true;
}
findNode(cNode);
})
};
findNode(root);
return fNode;
},
add: function(tree, node) {//新增树节点
var me = this;
var pNode = me.findByID(tree, node.PID);
if (pNode) {
var isAdd = pNode.isLoaded();
isAdd = pNode.isLeaf() ? true : isAdd;
pNode.data.leaf = false;
isAdd ? pNode.appendChild(node) : 1;
}
},
del: function(tree, node) {//删除树节点
var me = this;
var node = me.findByID(tree, node.id);
if (node) {
var pNode = node.parentNode;
pNode.removeChild(node);
if (pNode.childNodes.length == 0 && !pNode.data.leaf) {
pNode.data.leaf = true;
pNode.parentNode.replaceChild(pNode, pNode);
}
}
return node;
},
edit: function(tree, node) {//编辑树节点
var me = this;
var oldNode = me.findByID(tree, node.id);
if (oldNode) {
Ext.applyIf(node, oldNode.data);
if (node.leaf == false) {
node.loaded = false;
}
node.PID = !node.PID ? node.parentId : node.PID;
node.parentNodeId = !node.parentNodeId ? node.parentId : node.parentNodeId;
node.parentId = node.PID;
if (node.PID === oldNode.data.parentId) {
oldNode.parentNode.replaceChild(node, oldNode);
return;
}
}
me.del(tree, node);
me.add(tree, node);
}
},