private static void Igp_topology_OnNodeUpdateCallback(yggdrasil2.Topology.Node.Node node)
 {
 }
        public static Shape RenderNode(yggdrasil2.Topology.Node.Node Node, Dataweb.NShape.WinFormsUI.Display Display)
        {
            //Globals
            Project project = Display.Project;
            Diagram diagram = Display.Diagram;
            Design  design  = project.Design;

            Layer layer = diagram.Layers["NETWORK"];
            //

            //Defaults
            Point      position = new Point(diagram.Width / 2, diagram.Height / 2);
            int        diameter = 100;
            IFillStyle fill     = design.FillStyles.Transparent;
            ILineStyle stroke   = design.LineStyles.Normal;
            string     caption  = "";

            //

            //Node Labels
            if (!Node.IsPseudonode)
            {
                diameter = 600;
                fill     = design.FillStyles.Blue;
                stroke   = design.LineStyles.None;

                caption = Node.NodeName;
            }
            else
            {
                diameter = 60;
                fill     = design.FillStyles.Black;
                stroke   = design.LineStyles.None;
            }
            //


            if (!Node.OperationalStatus)
            {
                fill = design.FillStyles.Red;
            }

            Shape exists = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(Node.Id.As <string>(), null), "Circle", Display);

            if (exists != null)
            {
                try
                {
                    //Update Node -- TODO: Move this somewhere else
                    ((Circle)exists).Diameter  = diameter;
                    ((Circle)exists).FillStyle = fill;
                    ((Circle)exists).LineStyle = stroke;
                    ((display.UI.ShapeTag)exists.Tag).LineStyle = stroke;
                    //
                }
                catch (Exception)
                {
                    System.Threading.Thread.Sleep(1);
                    RenderNode(Node, Display);
                }

                return(exists);
            }
            else
            {
                return(NShapeHelper.DrawCircle(diameter, position.X, position.Y, fill, stroke, caption, new display.UI.ShapeTag(Node.Id.As <string>(), Node,
                                                                                                                                stroke, fill, Display.Project.Design.CapStyles.None), 'B', Display, project, layer));
            }
        }
Esempio n. 3
0
 private static void Igp_topology_OnNodeUpdateCallback(yggdrasil2.Topology.Node.Node node)
 {
     IGPNodes.Set(igp_topology.Nodes.Count(n => n.IsPseudonode == false));
 }