<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<?xml version="1.0" encoding="UTF-8" ?>
var djConfig = { isDebug: true };
/* Load Dojo engine */
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");
JSP Page
JSP Page
//this is working code (commented) -->>
/* Define common types to minimize typo problems */
var treeMenuItem = "TreeMenuItem";
function addTreeContextMenu(){
var djWdgt = dojo.widget;
var ctxMenu = djWdgt.createWidget(
"TreeContextMenu",{widgetId:"treeCtxMenu"});
ctxMenu.addChild(djWdgt.createWidget(
treeMenuItem,{caption:"Add Child"}));
ctxMenu.addChild(djWdgt.createWidget(
treeMenuItem,{caption:"Remove Item"}));
document.body.appendChild(ctxMenu.domNode);
// Bind the context menu to the tree
var myTree = dojo.widget.manager.getWidgetById("myTree");
ctxMenu.listenTree(myTree);
dojo.addOnLoad( function(){
addTreeContextMenu();
});
}
-->
//this code isnt working -->>
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()
});
i hav posted it twice!!! sorry!!
i hav posted this actually in IDE's.
but i found other dojo codes in javascript, so i m posting it here too!!
this code should output a tree view with a working context menu showing add or remove node. i can get the tree view but not the working contex menu.
pls help!