示例#1
0
        private FlowchartModel CreateModel()
        {
            var model = new FlowchartModel();

            var start = new FlowNode(NodeKinds.Start);

            start.Row    = 0;
            start.Column = 1;
            start.Text   = "Start";

            var ac0 = new FlowNode(NodeKinds.Action);

            ac0.Row    = 1;
            ac0.Column = 1;
            ac0.Text   = "i = 0";

            var cond = new FlowNode(NodeKinds.Condition);

            cond.Row    = 2;
            cond.Column = 1;
            cond.Text   = "i < n";

            var ac1 = new FlowNode(NodeKinds.Action);

            ac1.Row    = 3;
            ac1.Column = 1;
            ac1.Text   = "do something";

            var ac2 = new FlowNode(NodeKinds.Action);

            ac2.Row    = 4;
            ac2.Column = 1;
            ac2.Text   = "i++";

            var end = new FlowNode(NodeKinds.End);

            end.Row    = 3;
            end.Column = 2;
            end.Text   = "End";

            model.Nodes.Add(start);
            model.Nodes.Add(cond);
            model.Nodes.Add(ac0);
            model.Nodes.Add(ac1);
            model.Nodes.Add(ac2);
            model.Nodes.Add(end);

            model.Links.Add(new Link(start, PortKinds.Bottom, ac0, PortKinds.Top));
            model.Links.Add(new Link(ac0, PortKinds.Bottom, cond, PortKinds.Top));

            model.Links.Add(new Link(cond, PortKinds.Bottom, ac1, PortKinds.Top)
            {
                Text = "True"
            });
            model.Links.Add(new Link(cond, PortKinds.Right, end, PortKinds.Top)
            {
                Text = "False"
            });

            model.Links.Add(new Link(ac1, PortKinds.Bottom, ac2, PortKinds.Top));
            model.Links.Add(new Link(ac2, PortKinds.Bottom, cond, PortKinds.Top));

            return(model);
        }
        private FlowchartModel CreateModel()
        {
            var model = new FlowchartModel();

            var start = new FlowNode(NodeKinds.Start);

            start.Row    = 0;
            start.Column = 1;
            start.Text   = "Start";

            var ac0 = new FlowNode(NodeKinds.Action);

            ac0.Row    = 1;
            ac0.Column = 1;
            ac0.Text   = "i = 0";

            var cond = new FlowNode(NodeKinds.Condition);

            cond.Row    = 2;
            cond.Column = 1;
            cond.Text   = "i < n";

            var ac1 = new FlowNode(NodeKinds.Action);

            ac1.Row    = 3;
            ac1.Column = 1;
            ac1.Text   = "do something";

            var ac2 = new FlowNode(NodeKinds.Action);

            ac2.Row    = 4;
            ac2.Column = 1;
            ac2.Text   = "i++";

            var end = new FlowNode(NodeKinds.End);

            end.Row    = 3;
            end.Column = 2;
            end.Text   = "End";

            //model.Nodes.Add(start);
            //model.Nodes.Add(cond);
            //model.Nodes.Add(ac0);
            //model.Nodes.Add(ac1);
            //model.Nodes.Add(ac2);
            //model.Nodes.Add(end);

            //model.Links.Add(new Link(start, PortKinds.Bottom, ac0, PortKinds.Top));
            //model.Links.Add(new Link(ac0, PortKinds.Bottom, cond, PortKinds.Top));

            //model.Links.Add(new Link(cond, PortKinds.Bottom, ac1, PortKinds.Top) { Text = "True" });
            //model.Links.Add(new Link(cond, PortKinds.Right, end, PortKinds.Top) { Text = "False" });

            //model.Links.Add(new Link(ac1, PortKinds.Bottom, ac2, PortKinds.Top));
            //model.Links.Add(new Link(ac2, PortKinds.Bottom, cond, PortKinds.Top));

            var cpn = new FlowNode(NodeKinds.ConstantPayload);

            cpn.Row    = 0;
            cpn.Column = 0;

            var fpn = new FlowNode(NodeKinds.FlexiblePaylaod);

            fpn.Row    = 2;
            fpn.Column = 0;

            var dn = new FlowNode(NodeKinds.Distribute);

            dn.Row    = 1;
            dn.Column = 2;

            var otn = new FlowNode(NodeKinds.Output);

            otn.Row    = 1;
            otn.Column = 4;

            model.Nodes.Add(otn);
            model.Nodes.Add(cpn);
            model.Nodes.Add(fpn);
            model.Nodes.Add(dn);

            model.Links.Add(new Link(cpn, PortKinds.Right, dn, PortKinds.Top));
            //dn.AddNode(cpn);
            model.Links.Add(new Link(fpn, PortKinds.Right, dn, PortKinds.Top));
            //dn.AddNode(fpn);
            model.Links.Add(new Link(dn, PortKinds.Right, otn, PortKinds.Top));
            //otn.AddNode(dn);

            return(model);
        }