Start Building Professional
Web Apps Today


 
Categories Question details Back To List
Question  posted by Stephen on Nov 01, 2009 12:32
open dhtmlx forum
dhtmlxTree - can right click mouse (context menu) on a node select that node?

I dont want a user to have to left click mouse to select a node and then right click to use context menu on that node. So can right click aslo select that node?

1) select and hightlight a tree node
2) right click on another tree node to get context menu and then have either:-
--a) focus/select the node right clicked on or else
--b) not show a menu option

Using
attachEvent("onClick", treeonButtonClick);

tree.attachEvent("onBeforeContextMenu", function(itemId) {
tree.focusItem(iitemId,true); // try and move selected node to this node ie hightlight it - but does not work
Answer posted by Alex (support) on Nov 02, 2009 05:09

Hello,

try to use selectItem method instead of focusItem to select an item:

tree.attachEvent("onBeforeContextMenu", function(itemId) { 
    tree.selectItem(itemId,true);

    return true



Answer posted by Stephen on Nov 02, 2009 05:44

It worked! Apologies Alex, I could have sworn I tried tree.selectItem(itemId,true); but without success. I already use this elsewhere in my code.

Answer posted by Stephen on Nov 02, 2009 06:01

Still have a problem - I'm trying to multi select items and then use the (right mouse click) context menu to do an action on those selected nodes.

I'm using tree.enableMultiselection(true,true); but theres a problem if :-

1) I do a multiselect on nodes 1,2,3 - they are selected/highlighted

2) but if I then right click on say node 4 then the context menu is for node 4 even though it is not selected/highlighted.

3) Possible solution - use tree.selectItem(itemId,true);

If I now repeat 1 and 2 above then this time nodes 1,2,3 are deseleted and node 4 is selected/highlighted - so thats good the context menu is now associated with that selected. But its not a solution because if I select nodes 1,2,3 and right click on 3 then nodes 1,2 are deselected only node 3 is selected.

Answer posted by Alex (support) on Nov 02, 2009 06:09

The selectItem method can have the 3rd parameter. It preserves the previous selection:

tree.attachEvent("onBeforeContextMenu", function(itemId) { 
  tree.selectItem(itemId,true,true);
  return true