internal static void DumpGroupTree(INode root, Dictionary <INode, DumpGroupNode> groupNodes, DumpContext dc) { GrElemDumpType dumpType = GrElemDumpType.Normal; if (dc.MatchedNodes != null && dc.MatchedNodes.Contains(root)) { if (dc.MultiMatchedNodes != null && dc.MultiMatchedNodes.Contains(root)) { dumpType = GrElemDumpType.MultiMatched; } else { dumpType = GrElemDumpType.SingleMatched; } } dc.Dumper.StartSubgraph(root, GetElemLabel(root, dc.DumpInfo), DumpAttributes(root), dc.DumpInfo.GetNodeDumpTypeTextColor(dumpType), dc.DumpInfo.GetNodeTypeColor(root.Type)); // TODO: Check coloring... // Dump the elements nested inside this subgraph foreach (INode node in groupNodes[root].groupedNodes) { if (groupNodes.ContainsKey(node)) { DumpGroupTree(node, groupNodes, dc); DumpEdgesFromNode(node, dc); } else { DumpNodeAndEdges(node, dc); } } dc.Dumper.FinishSubgraph(); }
internal static void DumpNodeAndEdges(INode node, DumpContext dc) { GrElemDumpType dumpType = GrElemDumpType.Normal; GrColor color, borderColor, textColor; GrNodeShape shape; if (dc.MatchedNodes != null && dc.MatchedNodes.Contains(node)) { if (dc.MultiMatchedNodes != null && dc.MultiMatchedNodes.Contains(node)) { dumpType = GrElemDumpType.MultiMatched; } else { dumpType = GrElemDumpType.SingleMatched; } color = dc.DumpInfo.GetNodeDumpTypeColor(dumpType); borderColor = dc.DumpInfo.GetNodeDumpTypeBorderColor(dumpType); textColor = dc.DumpInfo.GetNodeDumpTypeTextColor(dumpType); shape = dc.DumpInfo.GetNodeDumpTypeShape(dumpType); } else { color = dc.DumpInfo.GetNodeTypeColor(node.Type); borderColor = dc.DumpInfo.GetNodeTypeBorderColor(node.Type); textColor = dc.DumpInfo.GetNodeTypeTextColor(node.Type); shape = dc.DumpInfo.GetNodeTypeShape(node.Type); } DumpNode(node, textColor, color, borderColor, shape, dc.Dumper, dc.DumpInfo); DumpEdgesFromNode(node, dc); }
public int GetEdgeDumpTypeThickness(GrElemDumpType type) { return(edgeThicknesses[(int)type]); }
public GrLineStyle GetEdgeDumpTypeLineStyle(GrElemDumpType type) { return(edgeLineStyles[(int)type]); }
public GrColor GetEdgeDumpTypeTextColor(GrElemDumpType type) { return(edgeTextColors[(int)type]); }
public GrColor GetNodeDumpTypeTextColor(GrElemDumpType type) { return(nodeTextColors[(int)type]); }
public GrNodeShape GetNodeDumpTypeShape(GrElemDumpType type) { return(nodeShapes[(int)type]); }
public void SetEdgeDumpTypeThickness(GrElemDumpType type, int thickness) { edgeThicknesses[(int)type] = thickness; }
public void SetEdgeDumpTypeLineStyle(GrElemDumpType type, GrLineStyle style) { edgeLineStyles[(int)type] = style; }
public void SetEdgeDumpTypeTextColor(GrElemDumpType type, GrColor color) { edgeTextColors[(int)type] = color; }
public void SetNodeDumpTypeTextColor(GrElemDumpType type, GrColor color) { nodeTextColors[(int)type] = color; }
public void SetNodeDumpTypeShape(GrElemDumpType type, GrNodeShape shape) { nodeShapes[(int)type] = shape; }