You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.2 KiB
91 lines
2.2 KiB
2 years ago
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Dojo Tree Widget Test (dynamic node creation)</title>
|
||
|
|
||
|
<script type="text/javascript">
|
||
|
var djConfig = {isDebug: true, debugAtAllCosts: true };
|
||
|
</script>
|
||
|
<script type="text/javascript" src="../../../dojo.js"></script>
|
||
|
<script type="text/javascript">
|
||
|
delete dojo["profile"];
|
||
|
|
||
|
dojo.require("dojo.widget.*");
|
||
|
dojo.require("dojo.widget.TreeV3");
|
||
|
dojo.require("dojo.widget.TreeNodeV3");
|
||
|
dojo.require("dojo.widget.TreeBasicControllerV3");
|
||
|
dojo.require("dojo.profile");
|
||
|
dojo.hostenv.writeIncludes();
|
||
|
</script>
|
||
|
<script type="text/javascript">
|
||
|
|
||
|
|
||
|
dojo.addOnLoad(function(){
|
||
|
var depth = 0;
|
||
|
|
||
|
function addChildren(title,nodeOrTree) {
|
||
|
//dojo.debug("addChildren to "+nodeOrTree+" depth" + depth)
|
||
|
depth++;
|
||
|
|
||
|
var children = [];
|
||
|
for (var i=1; i<=10; i++) {
|
||
|
var t = title+'.'+i
|
||
|
dojo.profile.start("createWidget");
|
||
|
var node = dojo.widget.TreeNodeV3.prototype.createSimple({title: t, tree: tree})
|
||
|
// slow generic method (1.5-3x diff)
|
||
|
//var node = dojo.widget.createWidget("TreeNodeV3", {title: t, tree:tree.widgetId});
|
||
|
dojo.profile.end("createWidget");
|
||
|
|
||
|
if (depth<3) {
|
||
|
addChildren(t, node);
|
||
|
}
|
||
|
|
||
|
children.push(node);
|
||
|
}
|
||
|
nodeOrTree.setChildren(children)
|
||
|
//dojo.debug("out "+nodeOrTree);
|
||
|
|
||
|
depth--;
|
||
|
|
||
|
}
|
||
|
|
||
|
dojo.profile.start("createController");
|
||
|
var controller = dojo.widget.createWidget("TreeBasicControllerV3");
|
||
|
dojo.profile.end("createController");
|
||
|
|
||
|
dojo.profile.start("createTree");
|
||
|
var tree = dojo.widget.createWidget("TreeV3", {listeners: [controller.widgetId]});
|
||
|
dojo.profile.end("createTree");
|
||
|
|
||
|
document.body.appendChild(tree.domNode);
|
||
|
|
||
|
|
||
|
dojo.profile.start("createNodes");
|
||
|
addChildren('node', tree)
|
||
|
dojo.profile.end("createNodes");
|
||
|
|
||
|
var nodeCount = 0;
|
||
|
dojo.lang.forEach(tree.getDescendants(), function() { nodeCount++ });
|
||
|
|
||
|
dojo.debug("Nodes total: "+nodeCount);
|
||
|
|
||
|
dojo.profile.dump(true);
|
||
|
|
||
|
});
|
||
|
|
||
|
</script>
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
|
||
|
|
||
|
<h4>Test/profile fast nested nodes generation and adoptation</h4>
|
||
|
|
||
|
|
||
|
<input type=button value="profile" onClick="dojo.profile.dump(true);"/>
|
||
|
|
||
|
|
||
|
</body>
|
||
|
</html>
|