<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<script type="text/javascript">
var djConfig = { isDebug: true };
</script>
<script type="text/javascript" src="scripts/dojo.js">
/* Load Dojo engine */
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>JSP Page</h1>
<script type="text/javascript">
dojo.require("dojo.lang.*");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.Tree");
dojo.require("dojo.widget.TreeNode");
dojo.require("dojo.widget.TreeContextMenu");
dojo.require("dojo.widget.TreeBasicController");
</script>
<script type="text/javascript">
var DemoTreeManager = {
djWdgt: null,
myTreeWidget: null,
addTreeContextMenu: function(){
var ctxMenu = this.djWdgt.createWidget("TreeContextMenu",{});
ctxMenu.addChild(this.djWdgt.createWidget(
"TreeMenuItem",{caption:"Add Child Menu Item",
widgetId:"ctxAdd"}));
ctxMenu.addChild(this.djWdgt.createWidget(
"TreeMenuItem",{caption:"Delete this Menu Item",
widgetId:"ctxDelete"}));
document.body.appendChild(ctxMenu.domNode);
/* Bind the context menu to the tree */
ctxMenu.listenTree(this.myTreeWidget);
},
addController: function(){
this.djWdgt.createWidget(
"TreeBasicController",
{widgetId:"myTreeController",DNDController:"create"}
);
},
bindEvents: function(){
/* Bind the functions in the TreeActions object to the
context menu entries */
dojo.event.topic.subscribe("ctxAdd/engage",
function (menuItem) { TreeActions.addNewNode(menuItem.getTreeNode(),
"myTreeController"); }
);
dojo.event.topic.subscribe("ctxDelete/engage",
function (menuItem) { TreeActions.removeNode(menuItem.getTreeNode(),
"myTreeController"); }
);
},
init: function(){
/* Initialize this object */
this.djWdgt = dojo.widget;
this.myTreeWidget = this.djWdgt.manager.
getWidgetById("myTreeWidget");
this.addTreeContextMenu();
this.addController();
this.bindEvents();
}
};
var TreeActions = {
addNewNode: function(parent,controllerId){
this.controller = dojo.widget.manager.getWidgetById(controllerId);
if (!parent.isFolder) {
parent.setFolder();
}
var res = this.controller.createChild(parent, 0, { title: "New node" });
},
removeNode: function(node,controllerId){
if (!node) {
alert("Nothing selected to delete",);
return false;
}
this.controller = dojo.widget.manager.getWidgetById(controllerId);
var res = this.controller.removeNode(node, dojo.lang.hitch(this));
}
};
dojo.addOnLoad(function(){
DemoTreeManager.init()
});
</script>
<div class="dojo-Tree" id="myTreeWidget">
<div class="dojo-TreeNode" title="World"></div>
<div class="dojo-TreeNode" title="Business">
<div class="dojo-TreeNode" title="News">
<div class="dojo-TreeNode" title="Main"></div>
<div class="dojo-TreeNode" title="Company News"></div>
<div class="dojo-TreeNode" title="Economy"></div>
</div>
<div class="dojo-TreeNode" title="Markets"></div>
<div class="dojo-TreeNode" title="Technology"></div>
<div class="dojo-TreeNode" title="Jobs and Economy"></div>
</div>
<div class="dojo-TreeNode" title="Sports"></div>
</div>
</body>
var djConfig = { isDebug: true };
</script>
<script type="text/javascript" src="scripts/dojo.js">
/* Load Dojo engine */
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>JSP Page</h1>
<script type="text/javascript">
dojo.require("dojo.lang.*");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.Tree");
dojo.require("dojo.widget.TreeNode");
dojo.require("dojo.widget.TreeContextMenu");
dojo.require("dojo.widget.TreeBasicController");
</script>
<script type="text/javascript">
var DemoTreeManager = {
djWdgt: null,
myTreeWidget: null,
addTreeContextMenu: function(){
var ctxMenu = this.djWdgt.createWidget("TreeContextMenu",{});
ctxMenu.addChild(this.djWdgt.createWidget(
"TreeMenuItem",{caption:"Add Child Menu Item",
widgetId:"ctxAdd"}));
ctxMenu.addChild(this.djWdgt.createWidget(
"TreeMenuItem",{caption:"Delete this Menu Item",
widgetId:"ctxDelete"}));
document.body.appendChild(ctxMenu.domNode);
/* Bind the context menu to the tree */
ctxMenu.listenTree(this.myTreeWidget);
},
addController: function(){
this.djWdgt.createWidget(
"TreeBasicController",
{widgetId:"myTreeController",DNDController:"create"}
);
},
bindEvents: function(){
/* Bind the functions in the TreeActions object to the
context menu entries */
dojo.event.topic.subscribe("ctxAdd/engage",
function (menuItem) { TreeActions.addNewNode(menuItem.getTreeNode(),
"myTreeController"); }
);
dojo.event.topic.subscribe("ctxDelete/engage",
function (menuItem) { TreeActions.removeNode(menuItem.getTreeNode(),
"myTreeController"); }
);
},
init: function(){
/* Initialize this object */
this.djWdgt = dojo.widget;
this.myTreeWidget = this.djWdgt.manager.
getWidgetById("myTreeWidget");
this.addTreeContextMenu();
this.addController();
this.bindEvents();
}
};
var TreeActions = {
addNewNode: function(parent,controllerId){
this.controller = dojo.widget.manager.getWidgetById(controllerId);
if (!parent.isFolder) {
parent.setFolder();
}
var res = this.controller.createChild(parent, 0, { title: "New node" });
},
removeNode: function(node,controllerId){
if (!node) {
alert("Nothing selected to delete",);
return false;
}
this.controller = dojo.widget.manager.getWidgetById(controllerId);
var res = this.controller.removeNode(node, dojo.lang.hitch(this));
}
};
dojo.addOnLoad(function(){
DemoTreeManager.init()
});
</script>
<div class="dojo-Tree" id="myTreeWidget">
<div class="dojo-TreeNode" title="World"></div>
<div class="dojo-TreeNode" title="Business">
<div class="dojo-TreeNode" title="News">
<div class="dojo-TreeNode" title="Main"></div>
<div class="dojo-TreeNode" title="Company News"></div>
<div class="dojo-TreeNode" title="Economy"></div>
</div>
<div class="dojo-TreeNode" title="Markets"></div>
<div class="dojo-TreeNode" title="Technology"></div>
<div class="dojo-TreeNode" title="Jobs and Economy"></div>
</div>
<div class="dojo-TreeNode" title="Sports"></div>
</div>
</body>
this code is supposed to output a tree view with a working contex menu (add node, remove node).
i can get the tree view but not the working contex menu!!!!
pls tel me where m i goin wrong!! or pls suggest any way!! m using "dojo-0.4.1p1-kitchen_sink" edition!
need help urgently!
