Exemplo n.º 1
0
        void AddEdges(Core.Nodes.Node n)
        {
            n.OutputNodes.ForEach(node =>
            {
                if (!Drawn.Contains($"{n.Name}->{node.Name}"))
                {
                    var edge = Canvas.AddEdge(n.Name, node.Name);
                    Drawn.Add($"{n.Name}->{node.Name}");

                    edge.SourceNode.LabelText = $"{n.GetType().Name}\n{n.Name}";
                    edge.TargetNode.LabelText = $"{node.GetType().Name}\n{node.Name}";

                    switch (n)
                    {
                    case Core.Nodes.Node input when input.Value == NodeCurrent.High:
                        edge.SourceNode.Attr.FillColor = Microsoft.Msagl.Drawing.Color.PaleVioletRed;
                        break;

                    case Core.Nodes.Node input when input.Value == NodeCurrent.Low:
                        edge.SourceNode.Attr.FillColor = Microsoft.Msagl.Drawing.Color.LightBlue;
                        break;
                    }

                    switch (node)
                    {
                    case Core.Nodes.Node input when input.Value == NodeCurrent.High:
                        edge.TargetNode.Attr.FillColor = Microsoft.Msagl.Drawing.Color.PaleVioletRed;
                        break;

                    case Core.Nodes.Node input when input.Value == NodeCurrent.Low:
                        edge.TargetNode.Attr.FillColor = Microsoft.Msagl.Drawing.Color.LightBlue;
                        break;
                    }
                }

                AddEdges(node);
            });
        }