public void ForEach() { var r = new MapNode(new MapTree(), "r"); var c1 = new MapNode(r, "c1"); var cc1 = new MapNode(c1, "cc1"); var c2 = new MapNode(r, "c2"); r.ForEach(n => n.Text = "Updated"); Assert.AreEqual(r.Text, "Updated"); Assert.AreEqual(c1.Text, "Updated"); Assert.AreEqual(cc1.Text, "Updated"); Assert.AreEqual(c2.Text, "Updated"); }
public void ForEach_SkipFolded() { var r = new MapNode(new MapTree(), "r"); var c1 = new MapNode(r, "c1"); var c11 = new MapNode(c1, "c11"); var c12 = new MapNode(c1, "c12"); var c13 = new MapNode(c1, "c13"); var c2 = new MapNode(r, "c2"); var c3 = new MapNode(r, "c3", NodePosition.Left); c3.Folded = true; var c31 = new MapNode(c3, "c31"); var c311 = new MapNode(c31, "c311"); var c32 = new MapNode(c3, "c32"); r.ForEach(n => n.Text = "Updated", n => n.Folded == false); Assert.AreEqual(r.Text, "Updated"); Assert.AreEqual(c1.Text, "Updated"); Assert.AreEqual(c11.Text, "Updated"); Assert.AreEqual(c12.Text, "Updated"); Assert.AreEqual(c12.Text, "Updated"); Assert.AreEqual(c2.Text, "Updated"); Assert.AreEqual(c3.Text, "Updated"); Assert.AreEqual(c31.Text, "c31"); Assert.AreEqual(c311.Text, "c311"); Assert.AreEqual(c32.Text, "c32"); }
private void Tree_TreeStructureChanged(MapNode node, TreeStructureChangedEventArgs e) { if (e.ChangeType == TreeStructureChange.Deleted || e.ChangeType == TreeStructureChange.Detached) { node.ForEach(n => { if (n.IsTaskComplete()) { Remove(n); var evtTask = new CompletedTaskEventArgs(); evtTask.TaskChange = CompletedTaskChange.TaskRemoved; if (n.CompletionDateExists()) evtTask.OldCompletionDate = n.GetCompletionDate(); evtTask.OldTaskStatus = n.GetTaskStatus(); TaskChanged(n, evtTask); } }); } else if (e.ChangeType == TreeStructureChange.Attached) { node.ForEach((n) => { if (n.IsTaskComplete()) { Add(n); var evtTask = new CompletedTaskEventArgs(); evtTask.TaskChange = CompletedTaskChange.TaskCompleted; if (n.CompletionDateExists()) evtTask.OldCompletionDate = n.GetCompletionDate(); evtTask.OldTaskStatus = n.GetTaskStatus(); TaskChanged(n, evtTask); } }); } }