internal void InsertChild(TreeViewItemData <T> child, int index) { if (index < 0 || index >= m_Children.Count) { m_Children.Add(child); } else { m_Children.Insert(index, child); } }
internal void ReplaceChild(TreeViewItemData <T> newChild) { if (!hasChildren) { return; } var i = 0; foreach (var child in m_Children) { if (child.id == newChild.id) { m_Children.RemoveAt(i); m_Children.Insert(i, newChild); break; } i++; } }
internal static void AddItem(BaseTreeView treeView, TreeViewItemData <T> item, int parentId = -1, int childIndex = -1, bool rebuildTree = true) { if (treeView.viewController is TDefaultController defaultController) { defaultController.AddItem(item, parentId, childIndex, rebuildTree); if (rebuildTree) { treeView.RefreshItems(); } return; } Type dataSourceType = null; if (treeView.viewController?.GetType().GetGenericTypeDefinition() == typeof(TDefaultController).GetGenericTypeDefinition()) { dataSourceType = treeView.viewController?.GetType().GetGenericArguments()[0]; } throw new ArgumentException($"Type parameter ({typeof(T)}) differs from data source ({dataSourceType})and is not recognized by the controller."); }
internal void AddChild(TreeViewItemData <T> child) { m_Children.Add(child); }