Пример #1
0
        public static void RemoveShapesFromLayerByShapeType(Dataweb.NShape.WinFormsUI.Display Display, ShapeType ShapeType, Layer Layer)
        {
            List <Shape> shapes = Display.Diagram.Shapes.Where(s => s.Type == ShapeType).ToList();


            Display.Diagram.RemoveShapesFromLayers(shapes, Layer.Id);
        }
Пример #2
0
        public static CircularArc ConnectShapesArc(Shape Start, Shape End, ICapStyle StartCapStyle, ICapStyle EndCapStyle, Object Tag,
                                                   Dataweb.NShape.WinFormsUI.Display Display, Dataweb.NShape.Project Project, ILineStyle LineStyle, Layer Layer)
        {
            CircularArc arc = (CircularArc)Project.ShapeTypes["CircularArc"].CreateInstance();

            arc.LineStyle          = LineStyle;
            arc.Tag                = Tag;
            arc.SecurityDomainName = 'B';


            Display.Diagram.Shapes.Add(arc);
            arc.StartCapStyle = StartCapStyle;
            arc.EndCapStyle   = EndCapStyle;
            arc.Connect(ControlPointId.FirstVertex, Start, ControlPointId.Reference);
            arc.Connect(ControlPointId.LastVertex, End, ControlPointId.Reference);

            Point firstPt = arc.GetControlPointPosition(ControlPointId.FirstVertex);
            Point lastPt  = arc.GetControlPointPosition(ControlPointId.LastVertex);
            Point dstPos  = Point.Empty;

            dstPos.X = ((firstPt.X + lastPt.X) / 2) + 1;
            dstPos.Y = ((firstPt.Y + lastPt.Y) / 2) + 1;

            arc.InsertVertex(ControlPointId.LastVertex, dstPos.X, dstPos.Y);

            Display.Diagram.AddShapeToLayers(arc, Layer.Id);

            Project.Repository.Insert((Shape)arc, Display.Diagram);

            return(arc);
        }
Пример #3
0
        public static Polyline ConnectShapes(Shape Start, Shape End, Object Tag, Dataweb.NShape.WinFormsUI.Display Display,
                                             Dataweb.NShape.Project Project, ILineStyle LineStyle, Layer Layer)
        {
            Polyline arrow = (Polyline)Project.ShapeTypes["Polyline"].CreateInstance();

            arrow.LineStyle          = LineStyle;
            arrow.Tag                = Tag;
            arrow.SecurityDomainName = 'B';

            if (Display.InvokeRequired)
            {
                Display.BeginInvoke(new MethodInvoker(() => AddShape(Display, Project, arrow)));
            }
            else
            {
                Display.Diagram.Shapes.Add(arrow);
                Project.Repository.Insert((Shape)arrow, Display.Diagram);
            }

            arrow.Connect(ControlPointId.FirstVertex, Start, ControlPointId.Reference);
            arrow.Connect(ControlPointId.LastVertex, End, ControlPointId.Reference);

            Display.Diagram.AddShapeToLayers(arrow, Layer.Id);


            return(arrow);
        }
Пример #4
0
        public static Polyline DrawParallelArrow(Polyline Shape, Object Tag, Dataweb.NShape.WinFormsUI.Display Display, Dataweb.NShape.Project Project, ILineStyle LineStyle, Layer Layer)
        {
            Polyline parallel = (Polyline)Project.ShapeTypes["Polyline"].CreateInstance();

            parallel.StartCapStyle      = Project.Design.CapStyles.OpenArrow;
            parallel.LineStyle          = LineStyle;
            parallel.Tag                = Tag;
            parallel.SecurityDomainName = 'B';

            Point p0 = Shape.GetControlPointPosition(ControlPointId.FirstVertex);
            Point p1 = Shape.GetControlPointPosition(ControlPointId.LastVertex);

            Point n0 = Shape.CalcNormalVector(p0);
            Point n1 = Shape.CalcNormalVector(p1);

            parallel.MoveControlPointTo(ControlPointId.FirstVertex, n0.X, n0.Y, ResizeModifiers.None);
            parallel.MoveControlPointTo(ControlPointId.LastVertex, n1.X, n1.Y, ResizeModifiers.None);

            Display.Diagram.Shapes.Add(parallel);

            Display.Diagram.AddShapeToLayers(parallel, Layer.Id);

            Project.Repository.Insert((Shape)parallel, Display.Diagram);

            return(parallel);
        }
Пример #5
0
        public static Shape DrawBox(int Height, int Width, int X, int Y, IFillStyle FillStyle, ILineStyle LineStyle, ICharacterStyle CharacterStyle, IParagraphStyle ParagraphStyle,
                                    String Caption, Object Tag, Char SecurityDomain, Dataweb.NShape.WinFormsUI.Display Display, Dataweb.NShape.Project Project)
        {
            Box shape;

            shape        = (Box)Project.ShapeTypes["Box"].CreateInstance();
            shape.Height = Height;
            shape.Width  = Width;

            shape.X = X;

            shape.Y = Y;

            shape.FillStyle = FillStyle;

            shape.CharacterStyle = CharacterStyle;

            shape.ParagraphStyle = ParagraphStyle;

            shape.SetCaptionText(0, Caption);

            shape.Tag = Tag;

            shape.SecurityDomainName = SecurityDomain;

            Display.Diagram.Shapes.Add(shape);

            Project.Repository.Insert((Shape)shape, Display.Diagram);

            return(shape);
        }
Пример #6
0
 public static void FillTreeView(List <yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath> hlsps,
                                 TreeView treeViewResult, Dataweb.NShape.WinFormsUI.Display display, yggdrasil2.Topology.IGP.Topology igp_topology)
 {
     foreach (var hlsp in hlsps)
     {
         FillTreeView(hlsp, treeViewResult, display, igp_topology);
     }
 }
Пример #7
0
        public static void SetAllCirclesFillStyle(Dataweb.NShape.WinFormsUI.Display Display, IFillStyle FillStyle, Project Project)
        {
            List <Shape> shapes = Display.Diagram.Shapes.Where(s => s.Type == Project.ShapeTypes["Circle"]).ToList();

            foreach (Shape shape in shapes)
            {
                ((Circle)shape).FillStyle = FillStyle;
            }
        }
Пример #8
0
        public static void SetShapesLineStyleByTagStringAndShapeType(String Tag, Dataweb.NShape.WinFormsUI.Display Display, ILineStyle LineStyle, ShapeType ShapeType)
        {
            List <Shape> shapes = Display.Diagram.Shapes.Where(s => s.Tag.ToString() == Tag && s.Type == ShapeType).ToList();

            foreach (Shape shape in shapes)
            {
                shape.LineStyle = LineStyle;
            }
        }
Пример #9
0
        public static void SetCircleFillStyleByTagString(String Tag, Dataweb.NShape.WinFormsUI.Display Display, IFillStyle FillStyle, Project Project)
        {
            List <Shape> shapes = Display.Diagram.Shapes.Where(s => s.Tag.ToString().Contains(Tag) && s.Type == Project.ShapeTypes["Circle"]).ToList();

            foreach (Shape shape in shapes)
            {
                ((Circle)shape).FillStyle = FillStyle;
            }
        }
Пример #10
0
        public static void HighlightShapesByTagString(String Tag, Dataweb.NShape.WinFormsUI.Display Display, ILineStyle LineStyle, Layer Layer)
        {
            List <Shape> shapes = Display.Diagram.Shapes.Where(s => s.Tag.ToString() == Tag && Display.Diagram.Layers.GetLayer(Display.Diagram.GetShapeLayers(s)).Id == Layer.Id).ToList();

            foreach (Shape shape in shapes)
            {
                shape.LineStyle = LineStyle;
            }
        }
Пример #11
0
        public static void HighlightShapeByShapeTag(UI.ShapeTag Tag, Dataweb.NShape.WinFormsUI.Display Display)
        {
            Shape shape = Display.Diagram.Shapes.Where(s => s.Tag != null && s.Tag.GetType() == typeof(UI.ShapeTag) && ((UI.ShapeTag)s.Tag).Id == Tag.Id).SingleOrDefault();

            if (shape != null)
            {
                shape.LineStyle = Display.Project.Design.LineStyles.Highlight;
            }
        }
        public static Shape RenderNode(Neo4j.Driver.V1.INode 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.Labels.Contains("Node"))
            {
                diameter = 600;
                fill     = design.FillStyles.Blue;
                stroke   = design.LineStyles.None;

                caption = Node.Properties["Node_Name"].As <string>();
            }
            else if (Node.Labels.Contains("Pseudonode"))
            {
                diameter = 60;
                fill     = design.FillStyles.Black;
                stroke   = design.LineStyles.None;
            }
            //


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

            if (exists != null)
            {
                //Update Node -- TODO: Move this somewhere else
                ((Circle)exists).Diameter  = diameter;
                ((Circle)exists).FillStyle = fill;
                exists.LineStyle           = stroke;
                //

                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));
            }
        }
Пример #13
0
 public static void SetAllShapesLineStyle(Dataweb.NShape.WinFormsUI.Display Display, ILineStyle SourceLineStyle, ILineStyle TargetLineStyle)
 {
     foreach (Shape shape in Display.Diagram.Shapes)
     {
         if (shape.LineStyle == SourceLineStyle)
         {
             shape.LineStyle = TargetLineStyle;
         }
     }
 }
Пример #14
0
        public static void HighlightLink(UI.ShapeTag Tag, Dataweb.NShape.WinFormsUI.Display Display)
        {
            Shape shape = Display.Diagram.Shapes.Where(s => s.Type.Name == "Polyline" &&
                                                       s.Tag != null &&
                                                       s.Tag.GetType() == typeof(UI.ShapeTag) &&
                                                       ((UI.ShapeTag)s.Tag).Id == Tag.Id).SingleOrDefault();

            if (shape != null)
            {
                shape.LineStyle = Display.Project.Design.LineStyles.Highlight;
                ((Polyline)shape).StartCapStyle = Display.Project.Design.CapStyles.OpenArrow;
            }
        }
Пример #15
0
        public static void DimUnhighlightedShapes(Dataweb.NShape.WinFormsUI.Display Display, ILineStyle HighlightLineStyle, ILineStyle DimLineStyle, IFillStyle DimFillStyle, Layer Layer)
        {
            List <Shape> shapes = Display.Diagram.Shapes.Where(s => s.LineStyle != HighlightLineStyle && Display.Diagram.Layers.GetLayer(Display.Diagram.GetShapeLayers(s)).Id == Layer.Id).ToList();

            foreach (Shape shape in shapes)
            {
                shape.LineStyle = DimLineStyle;

                if (shape.Type.Name == "Circle")
                {
                    ((Circle)shape).FillStyle = DimFillStyle;
                }
            }
        }
        public static void RestoreLineStyles(Dataweb.NShape.WinFormsUI.Display Display)
        {
            foreach (var shape in Display.Diagram.Shapes)
            {
                if (shape.Tag != null && shape.Tag.GetType() == typeof(UI.ShapeTag))
                {
                    shape.LineStyle = ((UI.ShapeTag)shape.Tag).LineStyle;

                    if (shape.Type.Name == "Polyline")
                    {
                        ((Polyline)shape).EndCapStyle   = ((UI.ShapeTag)shape.Tag).CapStyle;
                        ((Polyline)shape).StartCapStyle = ((UI.ShapeTag)shape.Tag).CapStyle;
                    }
                }
            }
        }
Пример #17
0
        public static void FillTreeView(yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath hlsp,
                                        TreeView treeViewResult, Dataweb.NShape.WinFormsUI.Display display, yggdrasil2.Topology.IGP.Topology igp_topology)
        {
            TreeNode hlspNode = new TreeNode(hlsp.SymbolicPathName);

            hlspNode.Tag = hlsp;

            treeViewResult.Nodes.Add(hlspNode);

            foreach (var lsp in hlsp.Children)
            {
                TreeNode lspNode = new TreeNode(lsp.SymbolicPathName);
                lspNode.Tag = lsp;

                if (!lsp.Feasible)
                {
                    lspNode.ForeColor = System.Drawing.Color.Red;
                }

                TreeNode computedERONode = new TreeNode("Computed ERO");

                computedERONode.Tag = lsp;

                lspNode.Nodes.Add(computedERONode);

                foreach (var hop in lsp.ComputedExplicitRouteObject)
                {
                    TreeNode hopNode = new TreeNode(hop);

                    var link = igp_topology.Links.Where(l => l.IPv4InterfaceAddress == hop).SingleOrDefault();

                    if (link != null)
                    {
                        hopNode.Tag = new ui.display.UI.ShapeTag(link.Id, link);
                    }

                    computedERONode.Nodes.Add(hopNode);
                }

                hlspNode.Nodes.Add(lspNode);

                lspNode.Expand();
            }

            hlspNode.Expand();
        }
Пример #18
0
        public static Shape DrawCircleRadialTree(int Diameter, int LayerShapeCount, int LayerShapeIndex, int LayerDistanceFromCenter, Point LayerCenter,
                                                 IFillStyle FillStyle, ILineStyle LineStyle, String Caption, Object Tag, Char SecurityDomain,
                                                 Dataweb.NShape.WinFormsUI.Display Display, Dataweb.NShape.Project Project, Layer Layer)
        {
            Point DiagramCenter = new Point(Display.Diagram.Width / 2, Display.Diagram.Height / 2);

            Point result = new Point();

            double angle = 0;

            if (LayerShapeCount == 1)
            {
                angle = 2 * Math.PI / LayerShapeCount; //between 0 and 2 * PI (~6.2832), angle is in radians

                if (LayerCenter.X < DiagramCenter.X)
                {
                    angle += Math.PI;
                }
            }

            if (LayerShapeCount > 1)
            {
                angle = 2 * Math.PI / LayerShapeCount * LayerShapeIndex; //between 0 and 2 * PI (~6.2832), angle is in radians

                if (LayerCenter.X < DiagramCenter.X)
                {
                    angle = (Math.PI / LayerShapeCount * LayerShapeIndex) + (0.5 * Math.PI);
                }

                if (LayerCenter.X > DiagramCenter.X)
                {
                    angle = ((Math.PI / LayerShapeCount) * LayerShapeIndex) + (1.5 * Math.PI);
                }
            }

            result.Y = (int)Math.Round(LayerCenter.Y + LayerDistanceFromCenter * Math.Sin(angle));
            result.X = (int)Math.Round(LayerCenter.X + LayerDistanceFromCenter * Math.Cos(angle));

            return(DrawCircle(Diameter, result.X, result.Y, FillStyle, LineStyle, Caption, Tag, SecurityDomain, Display, Project, Layer));
        }
        public static Shape RenderRelationship(Neo4j.Driver.V1.IRelationship Rel, Dataweb.NShape.WinFormsUI.Display Display)
        {
            //Globals
            Project project = Display.Project;
            Diagram diagram = Display.Diagram;
            Design  design  = project.Design;

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

            //Defaults
            ILineStyle stroke   = design.LineStyles.Normal;
            ICapStyle  startCap = design.CapStyles.None;
            ICapStyle  endCap   = design.CapStyles.None;

            //

            if (Rel.Properties.ContainsKey("Operational_Status"))
            {
                if (Rel.Properties["Operational_Status"].As <bool>())
                {
                    stroke = design.LineStyles.Green;
                }
                else
                {
                    stroke = design.LineStyles.Red;
                }
            }


            //Start and End Shapes
            Shape shapeStart = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(Rel.StartNodeId.As <string>(), null), "Circle", Display);
            Shape shapeEnd   = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(Rel.EndNodeId.As <string>(), null), "Circle", Display);


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

            if (exists != null)
            {
                exists.LineStyle = stroke;

                return(exists);
            }
            else
            {
                //Rel Type
                switch (Rel.Type)
                {
                case "Link":
                    return(NShapeHelper.ConnectShapes(shapeStart, shapeEnd,
                                                      new display.UI.ShapeTag(Rel.Id.As <string>(), Rel, stroke, null, Display.Project.Design.CapStyles.None),
                                                      Display, project, stroke, layer));

                default:
                    return(NShapeHelper.ConnectShapes(shapeStart, shapeEnd,
                                                      new display.UI.ShapeTag(Rel.Id.As <string>(), Rel, stroke, null, Display.Project.Design.CapStyles.None),
                                                      Display, project, stroke, layer));
                }
                //
            }
        }
        public static Shape RenderRelationship(yggdrasil2.Topology.IGP.Link.Link link, Dataweb.NShape.WinFormsUI.Display Display)
        {
            //Globals
            Project project = Display.Project;
            Diagram diagram = Display.Diagram;
            Design  design  = project.Design;

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

            //Defaults
            ILineStyle stroke   = design.LineStyles.Normal;
            ICapStyle  startCap = design.CapStyles.None;
            ICapStyle  endCap   = design.CapStyles.None;

            //

            if (link.OperationalStatus)
            {
                stroke = design.LineStyles.Green;
            }
            else
            {
                stroke = design.LineStyles.Red;
            }

            //Start and End Shapes
            Shape shapeStart = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(link.SourceNode, null), "Circle", Display);
            Shape shapeEnd   = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(link.TargetNode, null), "Circle", Display);

            while (shapeStart == null || shapeEnd == null)
            {
                System.Threading.Thread.Sleep(1);

                shapeStart = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(link.SourceNode, null), "Circle", Display);
                shapeEnd   = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(link.TargetNode, null), "Circle", Display);
            }

            Shape exists = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(link.Id, null), "Polyline", Display);

            Shape reverseExists = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(link.ReverseId, null), "Polyline", Display);

            if (exists != null)
            {
                exists.LineStyle = stroke;
                ((UI.ShapeTag)exists.Tag).LineStyle = stroke;

                if (reverseExists != null)
                {
                    reverseExists.LineStyle = stroke;
                    ((UI.ShapeTag)reverseExists.Tag).LineStyle = stroke;
                }

                return(exists);
            }
            else
            {
                return(NShapeHelper.ConnectShapes(shapeStart, shapeEnd,
                                                  new display.UI.ShapeTag(link.Id, link, stroke, null, Display.Project.Design.CapStyles.None),
                                                  Display, project, stroke, layer));
            }
        }
Пример #21
0
        public static void ClearShapes(Dataweb.NShape.WinFormsUI.Display Display)
        {
            Display.Project.Repository.DeleteAll(Display.Diagram.Shapes);

            Display.Diagram.Shapes.RemoveRange(Display.Diagram.Shapes);
        }
Пример #22
0
        public static void IntentProcessor(object result, yggdrasil2.Topology.MPLS.Topology mpls_topology,
                                           yggdrasil2.Topology.IGP.Topology igp_topology, Dataweb.NShape.WinFormsUI.Display display,
                                           TreeView treeViewResult, ToolStripProgressBar toolStripProgressBar)
        {
            toolStripProgressBar.Visible = true;

            Application.DoEvents();

            if (result != null)
            {
                if (result.GetType() == typeof(yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath))
                {
                    yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath hlsp =
                        (yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath)result;

                    Application.DoEvents();

                    // Validate Paths
                    yggdrasil2.PathComputation.PathValidation.ValidatePathsUsingDijkstra(igp_topology, hlsp);

                    Application.DoEvents();

                    // TreeView Result
                    treeViewResult.Nodes.Clear();

                    Application.DoEvents();

                    FillTreeView(hlsp, treeViewResult, display, igp_topology);
                }
                else
                {
                    if (result.GetType() == typeof(List <yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath>))
                    {
                        List <yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath> hlsps =
                            (List <yggdrasil2.Topology.MPLS.HierarchicalLabelSwitchedPath.HierarchicalLabelSwitchedPath>)result;

                        Application.DoEvents();

                        //Validate Paths
                        yggdrasil2.PathComputation.PathValidation.ValidatePathsUsingDijkstra(igp_topology, hlsps);

                        Application.DoEvents();

                        // TreeView Result
                        treeViewResult.Nodes.Clear();

                        Application.DoEvents();

                        FillTreeView(hlsps, treeViewResult, display, igp_topology);
                    }
                }
            }

            toolStripProgressBar.Visible = false;
        }
Пример #23
0
 public static void AddShape(Dataweb.NShape.WinFormsUI.Display Display, Dataweb.NShape.Project Project, Shape shape)
 {
     Display.Diagram.Shapes.Add(shape);
     Project.Repository.Insert(shape, Display.Diagram);
 }
        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));
            }
        }
Пример #25
0
 public static Shape FindShapeByShapeTag(display.UI.ShapeTag ShapeTag, string TypeName, Dataweb.NShape.WinFormsUI.Display Display)
 {
     return(Display.Diagram.Shapes.Where(s => s != null && s.Tag != null && s.Tag.GetType() == typeof(display.UI.ShapeTag) && ((display.UI.ShapeTag)s.Tag).Id == ShapeTag.Id && s.Type.Name == TypeName).SingleOrDefault());
 }
Пример #26
0
        public static void HighlightShapeByTagString(String Tag, Dataweb.NShape.WinFormsUI.Display Display, ILineStyle LineStyle, Layer Layer)
        {
            Shape shape = Display.Diagram.Shapes.Where(s => s.Tag.ToString() == Tag && Display.Diagram.Layers.GetLayer(Display.Diagram.GetShapeLayers(s)).Id == Layer.Id).SingleOrDefault();

            shape.LineStyle = LineStyle;
        }
        public static Shape RenderRelationshipVector(Neo4j.Driver.V1.IRelationship Rel, Dataweb.NShape.WinFormsUI.Display Display)
        {
            //Globals
            Project project = Display.Project;
            Diagram diagram = Display.Diagram;
            Design  design  = project.Design;

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

            //Defaults
            ILineStyle stroke   = design.LineStyles.Green;
            ICapStyle  startCap = design.CapStyles.None;
            ICapStyle  endCap   = design.CapStyles.OpenArrow;
            //


            //Reference Shape
            Shape shapeReference = NShapeHelper.FindShapeByShapeTag(new display.UI.ShapeTag(Rel.Id.As <string>(), Display.Project.Design.CapStyles.None), "Polyline", Display);

            return(NShapeHelper.DrawParallelArrow((Polyline)shapeReference, Rel, Display, project, stroke, layer));
        }
Пример #28
0
        public static Shape FindShapeByTagString(String Tag, Dataweb.NShape.WinFormsUI.Display Display, Layer Layer)
        {
            Shape shape = Display.Diagram.Shapes.Where(s => s.Tag.ToString() == Tag && Display.Diagram.Layers.GetLayer(Display.Diagram.GetShapeLayers(s)).Id == Layer.Id).SingleOrDefault();

            return(shape);
        }
Пример #29
0
        public static void LayouterTopology(int LayerDistance, int RowDistance, FlowLayouter.FlowDirection Direction, int SpringRate, int Repulsion, int RepulsionRange, int Friction, int Mass, Boolean Fit,
                                            int FitX0, int FitY0, int FitX1, int FitY1, Dataweb.NShape.WinFormsUI.Display Display, int Timeout, LayouterType Type, Dataweb.NShape.Project Project)
        {
            switch (Type)
            {
            case LayouterType.Expansion:
                break;

            case LayouterType.Flow:
                FlowLayouter flowLayouter = new FlowLayouter(Project);
                flowLayouter.Direction     = Direction;
                flowLayouter.LayerDistance = LayerDistance;
                flowLayouter.RowDistance   = RowDistance;
                flowLayouter.AllShapes     = Display.Diagram.Shapes;
                flowLayouter.Shapes        = Display.Diagram.Shapes;

                flowLayouter.Prepare();
                flowLayouter.Execute(Timeout);

                if (Fit)
                {
                    flowLayouter.Fit(FitX0, FitY0, FitX1, FitY1);
                }

                break;

            case LayouterType.Grid:
                break;

            case LayouterType.Repulsion:
                RepulsionLayouter repulsionLayouter = new RepulsionLayouter(Project);
                repulsionLayouter.SpringRate     = SpringRate;     //8
                repulsionLayouter.Repulsion      = Repulsion;      //3
                repulsionLayouter.RepulsionRange = RepulsionRange; //600
                repulsionLayouter.Friction       = Friction;       //0
                repulsionLayouter.Mass           = Mass;           //50
                repulsionLayouter.AllShapes      = Display.Diagram.Shapes;
                repulsionLayouter.Shapes         = Display.Diagram.Shapes;

                repulsionLayouter.Prepare();

                repulsionLayouter.Execute(Timeout);

                if (Fit)
                {
                    repulsionLayouter.Fit(FitX0, FitY0, FitX1, FitY1);
                }

                break;

            default:
                break;
            }
        }
Пример #30
0
 public static List <Shape> FindShapesByTagString(String Tag, Dataweb.NShape.WinFormsUI.Display Display)
 {
     return(Display.Diagram.Shapes.Where(s => s.Tag.ToString() == Tag).ToList());
 }