protected override void InitDiagram()
        {
            base.InitDiagram();

            NPage activePage = m_DrawingDocument.Content.ActivePage;

            // we will be using basic shapes for this example
            NBasicShapeFactory basicShapesFactory = new NBasicShapeFactory();

            basicShapesFactory.DefaultSize = new NSize(80, 80);

            NList <NPerson> persons = new NList <NPerson>();

            // create persons
            NPerson personEmil     = new NPerson("Emil Moore", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personAndre    = new NPerson("Andre Smith", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personRobert   = new NPerson("Robert Johnson", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personBob      = new NPerson("Bob Williams", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personPeter    = new NPerson("Peter Brown", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personSilvia   = new NPerson("Silvia Moore", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personEmily    = new NPerson("Emily Smith", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personMonica   = new NPerson("Monica Johnson", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personSamantha = new NPerson("Samantha Miller", basicShapesFactory.CreateShape(ENBasicShape.Circle));
            NPerson personIsabella = new NPerson("Isabella Davis", basicShapesFactory.CreateShape(ENBasicShape.Circle));

            persons.Add(personEmil);
            persons.Add(personAndre);
            persons.Add(personRobert);
            persons.Add(personBob);
            persons.Add(personPeter);
            persons.Add(personSilvia);
            persons.Add(personEmily);
            persons.Add(personMonica);
            persons.Add(personSamantha);
            persons.Add(personIsabella);

            // create family relashionships
            personEmil.m_Family   = personSilvia;
            personAndre.m_Family  = personEmily;
            personRobert.m_Family = personMonica;

            // create friend relationships
            personEmily.m_Friends.Add(personBob);
            personEmily.m_Friends.Add(personMonica);

            personAndre.m_Friends.Add(personPeter);
            personAndre.m_Friends.Add(personIsabella);

            personSilvia.m_Friends.Add(personBob);
            personSilvia.m_Friends.Add(personSamantha);
            personSilvia.m_Friends.Add(personIsabella);

            personEmily.m_Friends.Add(personIsabella);
            personEmily.m_Friends.Add(personPeter);

            personPeter.m_Friends.Add(personRobert);

            // create the person vertices
            for (int i = 0; i < persons.Count; i++)
            {
                activePage.Items.Add(persons[i].m_Shape);
            }

            // creeate the family relations
            for (int i = 0; i < persons.Count; i++)
            {
                NPerson currentPerson = persons[i];

                if (currentPerson.m_Family != null)
                {
                    NRoutableConnector connector = new NRoutableConnector();
                    connector.MakeLine();
                    activePage.Items.Add(connector);

                    connector.GlueBeginToShape(currentPerson.m_Shape);
                    connector.GlueEndToShape(currentPerson.m_Family.m_Shape);

                    connector.Geometry.Stroke = new NStroke(2, NColor.Coral);

                    connector.LayoutData.SpringStiffness = 2;
                    connector.LayoutData.SpringLength    = 100;
                }
            }

            for (int i = 0; i < persons.Count; i++)
            {
                NPerson currentPerson = persons[i];
                for (int j = 0; j < currentPerson.m_Friends.Count; j++)
                {
                    NRoutableConnector connector = new NRoutableConnector();
                    connector.MakeLine();
                    activePage.Items.Add(connector);

                    connector.GlueBeginToShape(currentPerson.m_Shape);
                    connector.GlueEndToShape(currentPerson.m_Friends[j].m_Shape);

                    connector.Geometry.Stroke = new NStroke(2, NColor.Green);

                    connector.LayoutData.SpringStiffness = 1;
                    connector.LayoutData.SpringLength    = 200;
                }
            }

            // arrange diagram
            ArrangeDiagram();

            // fit active page
            m_DrawingDocument.Content.ActivePage.ZoomMode = ENZoomMode.Fit;
        }
예제 #2
0
        private void CreatePredefinedGraph()
        {
            // we will be using basic shapes for this example
            NBasicShapesFactory basicShapesFactory = new NBasicShapesFactory();

            basicShapesFactory.DefaultSize = new NSizeF(80, 80);

            List <NPerson> persons = new List <NPerson>();

            // create persons
            NPerson personEmil     = new NPerson("Emil Moore", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personAndre    = new NPerson("Andre Smith", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personRobert   = new NPerson("Robert Johnson", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personBob      = new NPerson("Bob Williams", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personPeter    = new NPerson("Peter Brown", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personSilvia   = new NPerson("Silvia Moore", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personEmily    = new NPerson("Emily Smith", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personMonica   = new NPerson("Monica Johnson", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personSamantha = new NPerson("Samantha Miller", basicShapesFactory.CreateShape(BasicShapes.Circle));
            NPerson personIsabella = new NPerson("Isabella Davis", basicShapesFactory.CreateShape(BasicShapes.Circle));

            persons.Add(personEmil);
            persons.Add(personAndre);
            persons.Add(personRobert);
            persons.Add(personBob);
            persons.Add(personPeter);
            persons.Add(personSilvia);
            persons.Add(personEmily);
            persons.Add(personMonica);
            persons.Add(personSamantha);
            persons.Add(personIsabella);

            // create family relashionships
            personEmil.m_Family   = personSilvia;
            personAndre.m_Family  = personEmily;
            personRobert.m_Family = personMonica;

            // create friend relationships
            personEmily.m_Friends.Add(personBob);
            personEmily.m_Friends.Add(personMonica);

            personAndre.m_Friends.Add(personPeter);
            personAndre.m_Friends.Add(personIsabella);

            personSilvia.m_Friends.Add(personBob);
            personSilvia.m_Friends.Add(personSamantha);
            personSilvia.m_Friends.Add(personIsabella);

            personEmily.m_Friends.Add(personIsabella);
            personEmily.m_Friends.Add(personPeter);

            personPeter.m_Friends.Add(personRobert);

            // create the person vertices
            for (int i = 0; i < persons.Count; i++)
            {
                NDrawingView1.Document.ActiveLayer.AddChild(persons[i].m_Shape);
            }

            // creeate the family relations
            for (int i = 0; i < persons.Count; i++)
            {
                NPerson currentPerson = persons[i];

                if (currentPerson.m_Family != null)
                {
                    NLineShape connector = new NLineShape();
                    NDrawingView1.Document.ActiveLayer.AddChild(connector);

                    connector.FromShape = currentPerson.m_Shape;
                    connector.ToShape   = currentPerson.m_Family.m_Shape;

                    connector.LayoutData.SpringStiffness = 2;
                    connector.LayoutData.SpringLength    = 100;
                    connector.Style.StrokeStyle          = new NStrokeStyle(2, Color.Coral);
                }
            }

            for (int i = 0; i < persons.Count; i++)
            {
                NPerson currentPerson = persons[i];
                for (int j = 0; j < currentPerson.m_Friends.Count; j++)
                {
                    NLineShape connector = new NLineShape();
                    NDrawingView1.Document.ActiveLayer.AddChild(connector);

                    connector.FromShape = currentPerson.m_Shape;
                    connector.ToShape   = currentPerson.m_Friends[j].m_Shape;

                    connector.LayoutData.SpringStiffness = 1;
                    connector.LayoutData.SpringLength    = 200;
                    connector.Style.StrokeStyle          = new NStrokeStyle(2, Color.Green);
                }
            }
        }