private void RebuildTree() { TreeRoot.Children.Clear(); // init with root element if (_tableAuthoring != null && _tableAuthoring.Table != null) { // table node var tableItem = new LayerTreeElement(_tableAuthoring.Table) { Id = 0 }; TreeRoot.AddChild(tableItem); var layerCount = 1; foreach (var pair in _layers.OrderBy(key => key.Key)) { // layer node var layerItem = new LayerTreeElement(pair.Key) { Id = layerCount++ }; tableItem.AddChild(layerItem); foreach (var item in pair.Value.OrderBy(behaviour => behaviour.name)) { if (item is ILayerableItemAuthoring layeredItem) { layerItem.AddChild(new LayerTreeElement(layeredItem) { Id = item.gameObject.GetInstanceID() }); } } } } TreeRebuilt?.Invoke(); }
public void SetData(IList <T> elements) { SetData(TreeElementUtility.ListToTree <T>(elements)); TreeRebuilt?.Invoke(Root); Reload(); }
public void SetData(T root) { SetData(root); TreeRebuilt?.Invoke(Root); Reload(); }