using UnityEngine; namespace UIWidgets { public class TreeViewComponent : TreeViewComponentBase { private TreeViewItem item; public TreeViewItem Item { get { return item; } set { if (item != null) { item.OnChange -= UpdateView; } item = value; if (item != null) { item.OnChange += UpdateView; } UpdateView(); } } public override void SetData(TreeNode newNode, int depth) { base.Node = newNode; base.SetData(base.Node, depth); Item = ((!(base.Node == null)) ? base.Node.Item : null); } protected virtual void UpdateView() { if (!(Icon == null) && !(Text == null)) { if (Item == null) { Icon.sprite = null; Text.text = string.Empty; } else { Icon.sprite = Item.Icon; Text.text = Item.LocalizedName ?? Item.Name; } if (SetNativeSize) { Icon.SetNativeSize(); } Icon.color = ((!(Icon.sprite == null)) ? Color.white : Color.clear); } } public override void MovedToCache() { if (Icon != null) { Icon.sprite = null; } } protected override void OnDestroy() { if (item != null) { item.OnChange -= UpdateView; } base.OnDestroy(); } } }