Login Register

dojo tree view with working context menu

<%@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>

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!