Example #1
0
        private void add_node_Click(object sender, EventArgs e)
        {
            var avf = new AddVertexForm();

            avf.ShowDialog(this);
            if (avf.Add && current_graph != null)
            {
                var n = new Node <string>(avf.Name, avf.Heuristic);
                current_graph.AddVertex(n);

                var ci = new ComboBoxItem(n.Key + "_node", n.Key);
                ci.Tag = n;
                start_node.Items.Add(ci);
                goal_node.Items.Add(ci);

                // set defaults
                goal_node.SelectedIndex  = goal_node.Items.Count - 1;
                start_node.SelectedIndex = 0;
                // set nodes event handlers
                n.OnPostVisit   += N_OnPostVisit;
                n.OnPreVisit    += N_OnPreVisit;
                n.OnVisit       += N_OnVisit;
                n.OnActionVisit += N_OnActionVisit;


                wpfHost.Child = GenerateWpfVisuals <string>(current_graph, ref _gArea);
                _gArea.Generate();
                _zoomctrl.ZoomToFill();
            }
        }
Example #2
0
        public void LoadGraph(string file)
        {
            ParserResults <string> res = null;

            if (file.EndsWith(".xml"))
            {
                res = xml_parser.Parse(file);
            }
            else
            {
                res = text_parser.Parse(file);
            }

            ResetGraph();

            var bg = new BiGraph <string>();

            current_graph = bg;
            foreach (var n in res.Nodes)
            {
                bg.AddVertex((Node <string>)n);
                // add nodes to cboxes
                var ci = new ComboBoxItem(n.Key + "_node", n.Key);
                ci.Tag = n;
                start_node.Items.Add(ci);
                goal_node.Items.Add(ci);
                // set defaults
                goal_node.SelectedIndex  = goal_node.Items.Count - 1;
                start_node.SelectedIndex = 0;
                // set nodes event handlers
                n.OnPostVisit   += N_OnPostVisit;
                n.OnPreVisit    += N_OnPreVisit;
                n.OnVisit       += N_OnVisit;
                n.OnActionVisit += N_OnActionVisit;
            }

            foreach (var e in res.Edges)
            {
                // set node edges
                e.Source.Edges.Add(e);
                bg.AddEdge((Base.Edge <string>)e);
            }

            wpfHost.Child = GenerateWpfVisuals <string>(bg, ref _gArea);
            _gArea.Generate();
            _zoomctrl.ZoomToFill();
        }