void OnDrawingAreaNodeContextClicked(string nodeId, int x, int y) { diagramDetails.nodes.TryGetValue(nodeId, out StoredNode node); var menu = new ClassGroupsContextMenu(diagramDetails.classGroups, node); menu.GroupSelected += (groupId) => { if (node == null) { diagramDetails.nodes.Add(nodeId, new StoredNode { classGroups = new List <string> { groupId } }); } else if (node.classGroups == null) { node.classGroups = new List <string> { groupId } } ; else { node.classGroups.Add(groupId); } // TODO: REFRESH TREE groupsTree.Model = groupsTree.Model; }; menu.GroupDeselected += (groupId) => node.classGroups.Remove(groupId); menu.Popup(); }
public ClassGroupContextMenuItem(ClassGroupsContextMenu parentMenu, string groupId, ClassGroup g) { this.parentMenu = parentMenu; GroupId = groupId; InitUI(g); }