/// <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 AddNodeTemplate(string templateName, string nameTemplate, GraphNodeShape shape, float width, float height, Color backColor, Color lineColor, Color selectedLineColor, Color textColor, Color hatchedColor, Type tagType) { if (typeof(BaseNodeConfig).IsAssignableFrom(tagType)) { _templates[templateName] = new GraphNodeTemplate(nameTemplate, shape, width, height, backColor, lineColor, selectedLineColor, textColor, hatchedColor, tagType); } else { throw new ArgumentException("Invalid node config type for editor template"); } }
/// <summary> /// Add an existing node to the editor /// </summary> /// <param name="config">The node entry</param> /// <param name="p">The point to set</param> /// <param name="z">The z co-ordinate</param> private GraphNode AddNode(BaseNodeConfig config, PointF p, float z) { GraphNodeTemplate template = _templates[config.GetNodeName()]; GraphNode n = netEditor.AddNode(p, z, config.Id, config.Label, template.Shape, template.Width, template.Height, template.BackColor, template.LineColor, template.SelectedLineColor, template.TextColor, template.HatchedColor, config); SetNode(n); netEditor.SelectedObject = n; return(n); }