77 lines
1.2 KiB
C#
77 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
namespace UIWidgets
|
|
{
|
|
public class TreeViewComponent : TreeViewComponentBase<TreeViewItem>
|
|
{
|
|
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<TreeViewItem> 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();
|
|
}
|
|
}
|
|
}
|