Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public int GetEdgeDumpTypeThickness(GrElemDumpType type)
 {
     return(edgeThicknesses[(int)type]);
 }
Beispiel #4
0
 public GrLineStyle GetEdgeDumpTypeLineStyle(GrElemDumpType type)
 {
     return(edgeLineStyles[(int)type]);
 }
Beispiel #5
0
 public GrColor GetEdgeDumpTypeTextColor(GrElemDumpType type)
 {
     return(edgeTextColors[(int)type]);
 }
Beispiel #6
0
 public GrColor GetNodeDumpTypeTextColor(GrElemDumpType type)
 {
     return(nodeTextColors[(int)type]);
 }
Beispiel #7
0
 public GrNodeShape GetNodeDumpTypeShape(GrElemDumpType type)
 {
     return(nodeShapes[(int)type]);
 }
Beispiel #8
0
 public void SetEdgeDumpTypeThickness(GrElemDumpType type, int thickness)
 {
     edgeThicknesses[(int)type] = thickness;
 }
Beispiel #9
0
 public void SetEdgeDumpTypeLineStyle(GrElemDumpType type, GrLineStyle style)
 {
     edgeLineStyles[(int)type] = style;
 }
Beispiel #10
0
 public void SetEdgeDumpTypeTextColor(GrElemDumpType type, GrColor color)
 {
     edgeTextColors[(int)type] = color;
 }
Beispiel #11
0
 public void SetNodeDumpTypeTextColor(GrElemDumpType type, GrColor color)
 {
     nodeTextColors[(int)type] = color;
 }
Beispiel #12
0
 public void SetNodeDumpTypeShape(GrElemDumpType type, GrNodeShape shape)
 {
     nodeShapes[(int)type] = shape;
 }