namespace UIWidgets.Examples { using UIWidgets; /// /// TreeViewSample component. /// public class TreeViewSampleComponent : TreeViewComponentBase { ITreeViewSampleItem item; /// /// Item. /// public ITreeViewSampleItem Item { get { return item; } set { if (item != null) { item.OnChange -= UpdateView; } item = value; if (item != null) { item.OnChange += UpdateView; } UpdateView(); } } /// /// Set data. /// /// Node. /// Depth. public override void SetData(TreeNode node, int depth) { base.SetData(node, depth); Item = (node == null) ? null : node.Item; } /// /// Update view. /// protected virtual void UpdateView() { if (Item == null) { Icon.sprite = null; TextAdapter.text = string.Empty; } else { Item.Display(this); } } /// /// Remove listeners. /// protected override void OnDestroy() { base.OnDestroy(); if (item != null) { item.OnChange -= UpdateView; } } } }