/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.widget.TreeContextMenu"); dojo.provide("dojo.widget.TreeMenuItem"); dojo.require("dojo.event.*"); dojo.require("dojo.io.*"); dojo.require("dojo.widget.Menu2"); dojo.widget.tags.addParseTreeHandler("dojo:TreeContextMenu"); dojo.widget.tags.addParseTreeHandler("dojo:TreeMenuItem"); dojo.widget.TreeContextMenu = function() { dojo.widget.PopupMenu2.call(this); this.listenedTrees = []; } dojo.inherits(dojo.widget.TreeContextMenu, dojo.widget.PopupMenu2); dojo.lang.extend(dojo.widget.TreeContextMenu, { widgetType: "TreeContextMenu", open: function(x, y, parentMenu, explodeSrc){ var result = dojo.widget.PopupMenu2.prototype.open.apply(this, arguments); /* publish many events here about structural changes */ dojo.event.topic.publish(this.eventNames.open, { menu:this }); return result; }, listenTree: function(tree) { /* add context menu to all nodes that exist already */ var nodes = tree.getDescendants(); for(var i=0; i I did not process onNodeDomCreate this.bindTreeNode(message.child); } } }); dojo.widget.TreeMenuItem = function() { dojo.widget.MenuItem2.call(this); } dojo.inherits(dojo.widget.TreeMenuItem, dojo.widget.MenuItem2); dojo.lang.extend(dojo.widget.TreeMenuItem, { widgetType: "TreeMenuItem", // treeActions menu item performs following actions (to be checked for permissions) treeActions: "", initialize: function(args, frag) { this.treeActions = this.treeActions.split(","); for(var i=0; i