/// <summary>
        /// Create a sample graph with edge/edge intersections and edge/group node intersections
        /// </summary>
        /// <param name="graph"></param>
        private void InitializeGraph(IGraph graph)
        {
            INode[] nodes = new INode[16];
            int     count = 0;

            for (int i = 1; i < 5; i++)
            {
                nodes[count++] = graph.CreateNode(new PointD(50 + 40 * i, 260));
                nodes[count++] = graph.CreateNode(new PointD(50 + 40 * i, 40));
                nodes[count++] = graph.CreateNode(new PointD(40, 50 + 40 * i));
                nodes[count++] = graph.CreateNode(new PointD(260, 50 + 40 * i));
            }

            for (int i = 0; i < nodes.Length; i++)
            {
                graph.AddLabel(nodes[i], "" + i);
            }

            graph.CreateEdge(nodes[0], nodes[1]);

            IPort p1 = graph.AddPort(nodes[0], new PointD(0, 0));

            graph.SetRelativePortLocation(p1, new PointD(5, 0));

            IPort p2 = graph.AddPort(nodes[1], new PointD(0, 0));

            graph.SetRelativePortLocation(p2, new PointD(5, 0));
            graph.CreateEdge(p1, p2);

            graph.CreateEdge(nodes[5], nodes[4]);

            graph.CreateEdge(nodes[2], nodes[3]);

            graph.CreateEdge(nodes[7], nodes[6]);

            graph.CreateEdge(nodes[2 + 8], nodes[3 + 8]);
            graph.CreateEdge(nodes[7 + 8], nodes[6 + 8]);

            graph.CreateEdge(nodes[0 + 8], nodes[1 + 8]);
            graph.CreateEdge(nodes[5 + 8], nodes[4 + 8]);

            INode n1 = graph.CreateNode(new PointD(300, 150));
            INode n2 = graph.CreateNode(new PointD(400, 150));
            INode n3 = graph.CreateNode(new PointD(500, 150));

            graph.CreateEdge(n1, n3);
            INode groupNode = graph.CreateGroupNode();

            graph.AddLabel(groupNode, "Group Node", InteriorStretchLabelModel.North);
            graph.SetParent(n2, groupNode);
            graph.AdjustGroupNodeLayout(groupNode);

            graphControl.UpdateContentRect();
        }
Esempio n. 2
0
 public static void AdjustGroupNodeBounds(this IGraph graph, INode node)
 {
     graph.AdjustGroupNodeLayout(node);
 }