Exemplo n.º 1
0
        private Graph BuildGraph(IBSharpContext context) {
            
            var result = new Graph {
                RankDir = RankDirType.RL,
                Label = "Графическая структура проекта",
                DefaultNode = new Node {
                    FontName = "Consolas", 
                    Shape = NodeShapeType.Box3d,
                    FontSize = 8,
                    Style = NodeStyleType.Filled
                },
                DefaultEdge = new Node {
                    FontName = "Consolas",
                    FontSize = 8
                },
            };
            var visited= new List<IBSharpClass>();
            if (null != ((BSharpContext) context).Dictionaries) {
                foreach (var e in ((BSharpContext) context).Dictionaries) {
                    var node = new Node {Code = "d" + e.Key, Label = e.Key,SubgraphCode = "dicts",Shape = NodeShapeType.Mcircle};
                    result.AddNode(node);
                    foreach (var i in e.Value) {
                        result.AddEdge(new Edge {From = i.cls.FullName, To = "d" + e.Key, ArrowHead = ArrowType.Curve});
                    }
                }
            }
            foreach (var c in context.Get(BSharpContextDataType.Working)) {
                BuildClass(result,context, (BSharpClass)c, visited);
            }

            result.AutoTune();
            return result;
        }
Exemplo n.º 2
0
 private void PrepareGraphForRendering()
 {
     foreach (var p in _parameters.OverrideGraphAttributes)
     {
         if (p.Key.StartsWith("node."))
         {
             ApplyNodeOverride(p);
         }
         else if (p.Key.StartsWith("edge."))
         {
             ApplyEdgeOverride(p);
         }
         else
         {
             _graph.OverrideAttribute(p.Key, p.Value);
         }
     }
     if (_parameters.Tune)
     {
         _graph.AutoTune();
     }
 }