public void Redraw() { FCategoryList.BeginUpdate(); FCategoryList.Clear(); var nodeInfos = NodeBrowser.NodeInfoFactory.NodeInfos.Where(ni => ni.Ignore == false && ni.Type != NodeType.Patch && ni.Type != NodeType.Text); foreach (var nodeInfo in nodeInfos) { Add(nodeInfo); } FCategoryList.EndUpdate(); PendingRedraw = false; }
public void TestObjectLifetime() { int createCount = 0; int destroyCount = 0; var source = new SortedEditableList <MockObject, int>(mo => mo.Order); var target = new EditableCollection <MockObject>(); Func <MockObject, MockObject> createMo = mo => { createCount++; return(new MockObject(mo.Order)); }; Action <MockObject> destroyMo = mo => { destroyCount++; }; target.SyncWith(source, createMo, destroyMo); source.Add(new MockObject(0)); Assert.AreEqual(1, createCount, "Create count"); Assert.AreEqual(0, destroyCount, "Destroy count"); var mock = new MockObject(-1); source.Add(mock); source.Add(new MockObject(-2)); source.Add(new MockObject(10)); Assert.AreEqual(4, createCount, "Create count"); Assert.AreEqual(0, destroyCount, "Destroy count"); source.Remove(mock); Assert.AreEqual(4, createCount, "Create count"); Assert.AreEqual(1, destroyCount, "Destroy count"); Assert.AreEqual(source.Count, target.Count); source.Clear(); Assert.AreEqual(source.Count, target.Count); Assert.AreEqual(createCount, destroyCount, "Create count doesn't match destroy count after source.Clear()"); }
public void Redraw() { FCategoryTreeViewer.SuspendLayout(); FCategoryList.BeginUpdate(); FCategoryList.Clear(); var nodeInfos = NodeBrowser.NodeInfoFactory.NodeInfos.Where(ni => ni.Ignore == false && ni.Type != NodeType.Patch && ni.Type != NodeType.Text && NodeBrowser.CategoryFilter.CategoryVisible(ni.Category)); foreach (var nodeInfo in nodeInfos) { Add(nodeInfo); } FCategoryList.EndUpdate(); FCategoryTreeViewer.ResumeLayout(); PendingRedraw = false; }