/// <summary> /// Add a node at the current location with a new pipe node /// </summary> /// <param name="templateName"></param> private void AddNode(string templateName) { GraphNodeTemplate template = _templates[templateName]; BaseNodeConfig config = null; string label = null; if (template.TagType == typeof(LibraryNodeConfig)) { using (SelectLibraryNodeForm frm = new SelectLibraryNodeForm()) { if (frm.ShowDialog(this) == DialogResult.OK) { NodeLibraryManager.NodeLibraryType type = frm.Node; object nodeConfig = null; if (type.ConfigType != null) { nodeConfig = Activator.CreateInstance(type.ConfigType); } config = new LibraryNodeConfig(type.Type, type.Name, nodeConfig); if (!String.IsNullOrWhiteSpace(type.NodeName)) { label = type.NodeName; } } } } else { config = (BaseNodeConfig)Activator.CreateInstance(template.TagType); } if (config != null) { if (label != null) { config.Label = label; } else { config.Label = template.GetNewName(); } GraphNode n = AddNode(config, _currMousePos, 0.0f); if (config is MasterLayerNodeConfig) { MasterLayerNodeConfig masterConfig = config as MasterLayerNodeConfig; masterConfig.Slave.Label = config.Label + "-Slave"; AddLinkLine(n, AddNode(masterConfig.Slave, new PointF(_currMousePos.X + 75.0f, _currMousePos.Y), 0.0f)); } netEditor.SelectedObject = n; } }
private void libraryNodeToolStripMenuItem_Click(object sender, EventArgs e) { LogPacket[] packets = GetPackets(true); if (packets.Length > 0) { using (SelectLibraryNodeForm frm = new SelectLibraryNodeForm()) { if (frm.ShowDialog() == DialogResult.OK) { RunScriptFromLibraryNode(packets, frm.Node); if (!parseWithToolStripMenuItem.DropDownItems.ContainsKey(frm.Node.Type.FullName)) { ToolStripMenuItem item = new ToolStripMenuItem(frm.Node.Name, null, null, frm.Node.Type.FullName); item.Click += new EventHandler(parseWithNodeLibraryCache_Click); item.Tag = frm.Node; parseWithToolStripMenuItem.DropDownItems.Add(item); } } } } }