private void ProcessNodeConnections(GraphvizTableRow row, GraphvizNode node) { if (ConnIndex <= 0) { return; } string connections = row[ConnIndex].Value; if (string.IsNullOrEmpty(connections)) { return; } var nodes = connections.Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (var n in nodes) { string dest = n.Trim(); if (!string.IsNullOrEmpty(dest)) { AddEdgeIfNotExist(node.Name, dest, GraphvizEdge.EdgeDir.Normal); } } }
private void ProcessNode(GraphvizTableRow row) { GraphvizNode node = AddNodeIfNotExist(row[0].Value); ProcessNodeAttributes(row, node); ProcessNodeConnections(row, node); }
private GraphvizNode AddNodeIfNotExist(string name) { GraphvizNode node = DotModel.FindNode(name); if (node == null) { node = new GraphvizNode(name); DotModel.Add(node); } return(node); }
private void ProcessNodeAttributes(GraphvizTableRow row, GraphvizNode node) { if (LabelIndex >= 0) { string label = row[LabelIndex]?.Value; node.Label = label?.Trim(); } if (ShapeIndex >= 0) { string shape = row[ShapeIndex]?.Value; node.Shape = shape?.Trim(); } if (ColorIndex >= 0) { string color = row[ColorIndex]?.Value; node.FillColor = color?.Trim(); } }
public void Add(GraphvizNode node) => Nodes.Add(node);