/// <summary> /// Event handler for the context menu other hits on a node. /// </summary> /// <remarks>We show only a dummy context menu to demonstrate the basic principle.</remarks> private void graphEditorInputMode_PopulateNodeContextMenu(object sender, PopulateItemContextMenuEventArgs <IModelItem> e) { if (!e.Handled) { IModelItem tableNode = graphEditorInputMode.FindItems(e.QueryLocation, new[] { GraphItemTypes.Node }, (item) => item.Lookup <ITable>() != null).FirstOrDefault(); if (tableNode != null) { var cutItem = new ToolStripMenuItem { Text = "ContextMenu for " + tableNode }; e.Menu.Items.Add(cutItem); e.Handled = true; } } }
public static IModelItem FindItem(this GraphEditorInputMode mode, PointD location, GraphItemTypes[] tests, Predicate <IModelItem> filter, IInputModeContext context) { return(mode.FindItems(context, location, tests, filter).FirstOrDefault()); }