public void Update() { //remove polygon, //remove edge // remove vertex, //add polygon //add edge //add vertex var polygons = polygonManager.GetPolygons(); if (treeView.Nodes.Count < polygons.Count) { var node = CreatePolygonNode(polygons.Last(), treeView.Nodes.Count); treeView.Nodes.Add(node); } else if (treeView.Nodes.Count > polygons.Count) { RemoveMissingNode(); } //treeView.Nodes.Count == polygons.Count for (int i = 0; i < polygons.Count; i++) { UpdateNode(treeView.Nodes[i] as GeometricNode, polygons[i], i); } }
public Form1() { InitializeComponent(); polygonManager = new PolygonManager(canvas, ChangeCursor, ChangeStatusStrip); var relationCreator = new RelationCreator(errorLabel, (selectedEdge1, selectedEdge2)); relationCreator.InitEvents(remove1, remove2, addEqualButton, addPerpendicularButton); hierarchyController = new Hierarchy(hierarchy, polygonManager, relationCreator); hierarchyController.Update(); polygonManager.OnStructureChanged += hierarchyController.HandleHierarchyChange; polygonManager.Update(); addEqualButton.Click += UpdateAll; addPerpendicularButton.Click += UpdateAll; polygonManager.GetPolygons().Add(Polygon.GetBigSample()); UpdateAll(this, null); }