Beispiel #1
0
 public static void AddNode(GraphNode node)
 {
     Nodes.Add(node);
     Edges.Add(node, new List <GraphEdge>());
     Adjency.Add(node, new List <GraphNode>());
     LastIndex++;
 }
Beispiel #2
0
        public static void Clear()
        {
            foreach (GraphNode node in Nodes)
            {
                Canvas canvas = node.Parent as Canvas;

                foreach (List <GraphEdge> list in Edges.Values)
                {
                    if (list != null)
                    {
                        foreach (GraphEdge edge in list)
                        {
                            if (edge != null)
                            {
                                canvas.Children.Remove(edge.EdgeLine);
                                canvas.Children.Remove(edge.WeightLabel);
                            }
                        }
                    }
                }

                canvas.Children.Remove(node);
            }

            Selected1 = null;
            Selected2 = null;

            Edges.Clear();
            Nodes.Clear();
            Adjency.Clear();
            LastIndex = -1;
        }
Beispiel #3
0
        public static void RemoveNode(GraphNode node)
        {
            Canvas canvas = node.Parent as Canvas;

            if (canvas != null)
            {
                if (Edges.ContainsKey(node))
                {
                    foreach (GraphEdge edge in Edges[node])
                    {
                        if (node == edge.NodeFirst)
                        {
                            Edges[edge.NodeSecond].Remove(edge);
                        }
                        else
                        {
                            Edges[edge.NodeFirst].Remove(edge);
                        }

                        canvas.Children.Remove(edge.EdgeLine);
                        canvas.Children.Remove(edge.WeightLabel);
                    }

                    Edges.Remove(node);
                }

                canvas.Children.Remove(node);
                Nodes.Remove(node);
                Adjency.Remove(node);

                if (node.Index == LastIndex)
                {
                    LastIndex--;
                }
            }
        }