public void HierarchyTreeViewUnitTest_TestMethod1() { HierarchyTreeView treeView = new HierarchyTreeView(); Hierarchy data = new Hierarchy { Name = "Parent" }; data.Children.Add(new Hierarchy { Name = "Child 1" }); data.Children.Add(new Hierarchy { Name = "Child 2" }); data.Children[0].Children.Add(new Hierarchy { Name = "Child Child 1" }); treeView.Data = data; Assert.IsNotNull(treeView.Nodes); Assert.AreEqual(1, treeView.Nodes.Count); Assert.AreEqual("Parent", treeView.Nodes[0].Text); Assert.AreEqual(data.Id.ToString(), treeView.Nodes[0].Name); Assert.IsNotNull(treeView.Nodes[0].Tag); Assert.AreEqual(data, treeView.Nodes[0].Tag as Hierarchy); Assert.IsNotNull(treeView.Nodes[0].Nodes); Assert.AreEqual(2, treeView.Nodes[0].Nodes.Count); Assert.AreEqual("Child 1", treeView.Nodes[0].Nodes[0].Text); Assert.AreEqual(1, treeView.Nodes[0].Nodes[0].Nodes.Count); Assert.AreEqual("Child Child 1", treeView.Nodes[0].Nodes[0].Nodes[0].Text); }
private void BonesTreeViews_ModelDropped(object sender, BrightIdeasSoftware.ModelDropEventArgs e) { void UnlinkBone(BoneLinkNode node) { node.ParentID = string.Empty; var parentBone = BoneNodes.FirstOrDefault(x => x.ChildBones.Contains(node)); if (parentBone != null) { parentBone.ChildBones.Remove(node); HierarchyTreeView.RefreshObject(parentBone); } } var draggedBones = e.SourceModels.OfType <BoneLinkNode>().ToList(); if (sender == UnassignedTreeView) { var allBones = draggedBones.SelectMany(x => x.GetHierarchy(true)).Distinct().ToList(); foreach (BoneLinkNode node in allBones) { //node.ParentID = string.Empty; node.UnlinkChildrens(); } foreach (BoneLinkNode node in draggedBones) { UnlinkBone(node); } UnassignedTreeView.AddObjects(allBones); } else if (sender == HierarchyTreeView) { if (RootBone == null) { RootBone = e.SourceModels[0] as BoneLinkNode; HierarchyTreeView.AddObject(RootBone); } else if (e.TargetModel is BoneLinkNode targetBone) { foreach (BoneLinkNode node in draggedBones) { if (string.IsNullOrEmpty(node.ParentID)) { UnassignedTreeView.RemoveObject(node); } UnlinkBone(node); targetBone.ChildBones.Add(node); node.ParentID = targetBone.ID; } HierarchyTreeView.RefreshObject(targetBone); } } }
protected internal void HTV_SelectedItemChanged(HierarchyTreeView sender) { List <long> tempItems = sender.GetVisibleItemsIds(); if (!visibleItemsIds.SequenceEqual(tempItems)) { visibleItemsIds = tempItems; reportViewModel.DataProvider.ProvideRecords(visibleItemsIds); } }
private void LoadBoneNodes() { BoneNodes = new List <BoneLinkNode>(); foreach (var bone in Bones) { var parentBone = Bones.FirstOrDefault(x => x.BoneID == bone.TargetBoneID); BoneNodes.Add(new BoneLinkNode() { ID = bone.ID, Name = bone.Name, ParentID = parentBone?.ID, BoneID = bone.BoneID }); } var remainingBones = BoneNodes.ToList(); void LinkChildBones(BoneLinkNode parent) { var childs = remainingBones.Where(x => x.ParentID == parent.ID).ToList(); if (!childs.Any()) { return; } parent.ChildBones.AddRange(childs); remainingBones.RemoveAll(x => x.ParentID == parent.ID); foreach (var child in childs) { LinkChildBones(child); } } RootBone = BoneNodes.FirstOrDefault(b => b.BoneID == 0); if (RootBone != null) { remainingBones.Remove(RootBone); LinkChildBones(RootBone); HierarchyTreeView.AddObject(RootBone); } if (remainingBones.Any()) { UnassignedTreeView.SetObjects(remainingBones); } HierarchyTreeView.ExpandAll(); }
private void AdjustColumnWidth() { int maxIndent = 0; foreach (var test in HierarchyTreeView.ExpandedObjects) { int itemIndex = HierarchyTreeView.IndexOf(test); if (itemIndex == -1) { continue; } maxIndent = Math.Max(maxIndent, HierarchyTreeView.GetItem(itemIndex).IndentCount); } olvColumn1.Width = (maxIndent * 8) + 100; }
private void CacheHierarchy() { if (m_HierachyTreeViewState == null) { m_HierachyTreeViewState = new TreeViewState(); } hierarchyTreeView = new HierarchyTreeView(target.transform, m_HierachyTreeViewState); hierarchyTreeView.ExpandAll(); hierarchyTreeView.OnItemClick += (go) => { lastSelectGameObject = currentSelectGameObject; currentSelectGameObject = (GameObject)go; CacheComponent(); }; }
protected virtual void CreateTreeView() { if (m_TreeViewState == null) { m_TreeViewState = new TreeViewState(); } var needsCacheState = false; if (m_HierarchyViewState == null) { m_HierarchyViewState = new HierarchyState(); needsCacheState = true; } m_HierarchyTreeView = new HierarchyTreeView(m_TreeViewState, m_HierarchyViewState, IsEnvironmentHierarchy, needsCacheState); Reload(); }
static void OnSelectionChanged() { HierarchyTreeView.PingObjects(Selection.transforms); }
void IModule.UnloadModule() { Selection.selectionChanged -= OnSelectionChanged; HierarchyTreeView.UnsetPing(); }
public void HierarchyTreeViewUnitTest_TestEnabledButtonsWhenTemplateNodeIsSelected() { HierarchyTreeView treeView = new HierarchyTreeView(); Hierarchy data = new Hierarchy { Name = "Templates" }; data.Children.Add(new Hierarchy { Name = "Context" }); var template = new Template { DataType = Guid.Empty }; // template. data.Children.Add(new Hierarchy { Name = "Entity", Item = template }); data.Children[0].Children.Add( new Hierarchy { Name = "Entity FrameWork Context", HierarchyType = HierarchyType.Item }); data.Children[1].Children.Add(new Hierarchy { Name = "Test 1", HierarchyType = HierarchyType.Item }); data.Children[1].Children.Add(new Hierarchy { Name = "Test 1", HierarchyType = HierarchyType.Item }); treeView.Data = data; // Test Level 1 (Template) treeView.SelectNode(treeView.Nodes[0]); Assert.AreEqual(false, treeView.UpEnabled); Assert.AreEqual(false, treeView.DownEnabled); Assert.AreEqual(false, treeView.DeleteEnabled); Assert.AreEqual(false, treeView.AddGroupEnabled); Assert.AreEqual(false, treeView.AddItemEnabled); // Test Level 2 (Context) treeView.SelectNode(treeView.Nodes[0].Nodes[0]); Assert.AreEqual(false, treeView.UpEnabled); Assert.AreEqual(false, treeView.DownEnabled); Assert.AreEqual(false, treeView.DeleteEnabled); Assert.AreEqual(true, treeView.AddGroupEnabled); Assert.AreEqual(true, treeView.AddItemEnabled); // Test Single Item (Entity FrameWork Context(v6)) treeView.SelectNode(treeView.Nodes[0].Nodes[0].Nodes[0]); Assert.AreEqual(false, treeView.UpEnabled); Assert.AreEqual(false, treeView.DownEnabled); Assert.AreEqual(true, treeView.DeleteEnabled); Assert.AreEqual(false, treeView.AddGroupEnabled); Assert.AreEqual(true, treeView.AddItemEnabled); // Test Multiple Children Item 1 (Test 1) treeView.SelectNode(treeView.Nodes[0].Nodes[1].Nodes[0]); Assert.AreEqual(false, treeView.UpEnabled); Assert.AreEqual(true, treeView.DownEnabled); Assert.AreEqual(true, treeView.DeleteEnabled); Assert.AreEqual(false, treeView.AddGroupEnabled); Assert.AreEqual(true, treeView.AddItemEnabled); // Test Multiple Children Item 2 (Test 2) treeView.SelectNode(treeView.Nodes[0].Nodes[1].Nodes[1]); Assert.AreEqual(true, treeView.UpEnabled); Assert.AreEqual(false, treeView.DownEnabled); Assert.AreEqual(true, treeView.DeleteEnabled); Assert.AreEqual(false, treeView.AddGroupEnabled); Assert.AreEqual(true, treeView.AddItemEnabled); }