var store = Ext.create('Ext.data.TreeStore', {
root : {
expanded : true,
children : [ {
text : "detention",
leaf : true
}, {
text : "homework",
expanded : true,
checked : false,
children : [ {
text : "book report",
leaf : true,
checked : false
}, {
text : "algebra",
leaf : true,
checked : false
} ]
}, {
text : "buy lottery tickets",
leaf : true
} ]
}
});
Ext.create('Ext.tree.Panel', {
title : 'Simple Tree',
width : 200,
height : 150,
store : store,
rootVisible : false,
listeners : {
checkchange : function(node, checked, eOpts) {
function clearNodeSelection(node) {
// 节点不是叶子节点的
// console.log(node);
leafNode = node.raw.leaf;
if (!leafNode) {
node.cascadeBy(function(node) {
node.set('checked', false);
});
}
}
if (!checked) {
// console.log("inside !checked : " + checked);
clearNodeSelection(node);
}
function selectParentNodes(node) {
var parentNode = node.parentNode;
if (parentNode) {
parentNode.set('checked', true);
selectParentNodes(parentNode);
}
}
selectParentNodes(node);
}
},
renderTo : Ext.getBody()
});
root : {
expanded : true,
children : [ {
text : "detention",
leaf : true
}, {
text : "homework",
expanded : true,
checked : false,
children : [ {
text : "book report",
leaf : true,
checked : false
}, {
text : "algebra",
leaf : true,
checked : false
} ]
}, {
text : "buy lottery tickets",
leaf : true
} ]
}
});
Ext.create('Ext.tree.Panel', {
title : 'Simple Tree',
width : 200,
height : 150,
store : store,
rootVisible : false,
listeners : {
checkchange : function(node, checked, eOpts) {
function clearNodeSelection(node) {
// 节点不是叶子节点的
// console.log(node);
leafNode = node.raw.leaf;
if (!leafNode) {
node.cascadeBy(function(node) {
node.set('checked', false);
});
}
}
if (!checked) {
// console.log("inside !checked : " + checked);
clearNodeSelection(node);
}
function selectParentNodes(node) {
var parentNode = node.parentNode;
if (parentNode) {
parentNode.set('checked', true);
selectParentNodes(parentNode);
}
}
selectParentNodes(node);
}
},
renderTo : Ext.getBody()
});