Exemple #1
0
        private static void DetectMultipleEdges(ModuleGraph graph, ModuleEdgeViewModel edge)
        {
            var multiEdges = from e in graph.Edges
                             where e.Source == edge.Source &&
                             e.Target == edge.Target
                             select e;

            int numEdges = multiEdges.Count();

            if (numEdges > 1)
            {
                int edgeIndex = 0;
                foreach (var multiEdge in multiEdges)
                {
                    if (multiEdge.EdgeMargin.Top.Equals(0))
                    {
                        multiEdge.EdgeMargin = new Thickness(
                            0,
                            (EdgeDistance * edgeIndex++) - ((EdgeDistance * numEdges) / 2) + 1,
                            0,
                            0);
                    }
                }
            }
        }
Exemple #2
0
        public static ModuleGraph BuildGraph(ILogger logger, ModuleGraphDTO moduleGraphDto, IList <ModuleVertexViewModelBase> positions, bool smallFallbackIcons = false)
        {
            var graph = new ModuleGraph();

            try
            {
                foreach (var platformModuleDto in moduleGraphDto.Vertices)
                {
                    var res = (from p in positions
                               where p.ID == platformModuleDto.Name
                               select p).FirstOrDefault();

                    Point pos = res == null ? new Point(50, 50) : res.Position;

                    var imagepath = @"Images\" + platformModuleDto.Type + ".png";
                    graph.AddVertex(new ModuleVertexViewModel(platformModuleDto.Name, imagepath, pos)
                    {
                        Capacity            = platformModuleDto.MaxCapacity,
                        Counter             = platformModuleDto.PlatformItems.Count,
                        Position            = pos,
                        DefaultVertexHeight = smallFallbackIcons ? 100 : 700
                    });
                }

                foreach (var edgeDto in moduleGraphDto.Edges)
                {
                    var edge = new ModuleEdgeViewModel(
                        edgeDto.Id,
                        FindModuleVertex(graph, edgeDto.Source),
                        FindModuleVertex(graph, edgeDto.Target))
                    {
                        OriginPortIndex  = edgeDto.OriginPort,
                        IsForcingEnabled = edgeDto.IsForcingEnabled
                    };

                    DetectCyclicEdge(graph, edge);

                    graph.AddEdge(edge);
                }

                foreach (var edge in graph.Edges)
                {
                    DetectMultipleEdges(graph, edge);
                }
            }
            catch (Exception e)
            {
                logger.Error("Could not load and create Module PaperStreamGraph for Overview.", e);
                throw;
            }

            return(graph);
        }
Exemple #3
0
        private static void DetectCyclicEdge(ModuleGraph graph, ModuleEdgeViewModel edge)
        {
            var cyclicEdge = (from e in graph.Edges
                              where e.Source == edge.Target &&
                              e.Target == edge.Source
                              select e).FirstOrDefault();

            if (cyclicEdge != null)
            {
                cyclicEdge.FirstEdge = true;
                edge.SecondEdge      = true;
            }
        }
 public EdgeClickEventArgs(ModuleEdgeViewModel edge)
 {
     Edge = edge;
 }