private void ReprecateMenuToTree(TreeNodeCollection collection, CustomToolStripMenuItem menu) { if (menu.IsFolder) { var treeNode = new CustomTreeNode(menu.CustomToolTipText, menu.Text); this.AddFolder(collection, treeNode); foreach (CustomToolStripMenuItem childMenu in menu.DropDownItems) { ReprecateMenuToTree(treeNode.Nodes, childMenu); } } else { var treeNode = new CustomTreeNode(menu.Dumper, menu.Text); this.AddFlow(collection, treeNode); if (menu.DropDownItems.Count > 0) { foreach (CustomToolStripMenuItem childMenu in menu.DropDownItems) { var childNode = new CustomTreeNode(childMenu.Dumper, childMenu.Text); this.AddFlow(treeNode.Nodes, childNode); } } } }
Source areaControl_GetSource(string arg) { if (toolStripDictionary.ContainsKey(arg)) { CustomToolStripMenuItem ctsmi = toolStripDictionary[arg]; PreProcessDumper(ctsmi.Dumper); var source = new Source(ctsmi.Dumper.AssemblyAndType) { Name = ctsmi.Dumper.SourceName, FullName = ctsmi.Dumper.FullName, ToolTip = $"({ctsmi.Dumper.SourceName})\n{ctsmi.Dumper.FlowToolTipText}", Warning = ctsmi.Dumper.Warning }; foreach (Item item in ctsmi.Dumper.InEvents.Concat(ctsmi.Dumper.OutEvents.Concat(ctsmi.Dumper.InProperties.Concat(ctsmi.Dumper.OutProperties)))) { source.AddItem(item.Clone()); } foreach (KeyValuePair <string, AssemblyAndTypeAndSource[]> asms in sourceCache.Where(p => p.Key == ctsmi.Dumper.SourceName)) { foreach (AssemblyAndTypeAndSource asm in asms.Value) { source.AddSameNameSource(asm.AssemblyAndType); } } return(source); } return(null); }
private bool IsFilteredMenu(CustomToolStripMenuItem node, NodeFilterInfoBase filter) { if (node.Dumper == null) { return(true); } return(!filter.IsHide(node.Dumper)); }
internal void ReprecateMenuToTree(CustomToolStripMenuItem menu) { ReprecateMenuToTree(treeView1.Nodes, menu); }
private void CreateToolStripMenuItem(AssemblyAndTypeAndSource source) { #if DEBUG if (!initialized) { source.Source.AutoTest(); } #endif toolTipTexts.Add(source.Dumper); source.Dumper.UpdateLanguage(null); if (languageProvider != null) { source.Dumper.UpdateLanguage(languageProvider); } var nameSplits = source.Source.Name.Split('.'); ToolStripMenuItem addTarget = addNodeToolStripMenuItem; for (int i = 0; i < nameSplits.Length - 1; i++) { var tsmi = FindMenu(addTarget, nameSplits[i]); if (tsmi == null) { var folder = new FlowSourceFolder(String.Join(".", nameSplits, 0, i + 1)); toolTipTexts.Add(folder); if (languageProvider != null) { folder.UpdateLanguage(languageProvider); } tsmi = new CustomToolStripMenuItem(folder, this, tooltip, nameSplits[i]) { Name = nameSplits[i] }; addTarget.DropDownItems.Add(tsmi); } addTarget = tsmi; } var existingMenuItem = FindMenu(addTarget, nameSplits[nameSplits.Length - 1]); CustomToolStripMenuItem newMenu; if (existingMenuItem == null) { newMenu = new CustomToolStripMenuItem(source.Dumper, this, tooltip, nameSplits[nameSplits.Length - 1]); addTarget.DropDownItems.Add(newMenu); } else { if (existingMenuItem.DropDownItems.Count == 0) { var text = CreateTextFromDumper(existingMenuItem.Dumper); var cloneMenu = new CustomToolStripMenuItem(existingMenuItem.Dumper, this, tooltip, text) { Name = nameSplits[nameSplits.Length - 1] }; cloneMenu.Click += newMenu_Click; existingMenuItem.DropDownItems.Add(cloneMenu); } var newText = CreateTextFromDumper(source.Dumper); newMenu = new CustomToolStripMenuItem(source.Dumper, this, tooltip, newText); existingMenuItem.DropDownItems.Add(newMenu); } toolStripDictionary.Add(source.AssemblyAndType.Type.FullName, newMenu); newMenu.Name = nameSplits[nameSplits.Length - 1]; newMenu.Click += newMenu_Click; }