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(); } }
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(); }