267 lines
9.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace SuperTreeView
{
public class DemoSceneScript : MonoBehaviour
{
public TreeView mTreeView;
int mCurSelectedItemId = 0;
int mNewItemCount = 0;
void Start()
{
ResManager rm = ResManager.Instance;
mTreeView.OnTreeListAddOneItem = OnTreeListAddOneItem;
mTreeView.OnTreeListDeleteOneItem = OnTreeListDeleteOneItem;
mTreeView.OnItemExpandBegin = OnItemExpandBegin;
mTreeView.OnItemCollapseBegin = OnItemCollapseBegin;
mTreeView.OnItemCustomEvent = OnItemCustomEvent;
mTreeView.InitView();
TreeViewItem item1 = mTreeView.AppendItem("ItemPrefab1");
item1.GetComponent<ItemScript1>().SetItemInfo("home", "Home", "1");
TreeViewItem item2 = mTreeView.AppendItem("ItemPrefab1");
item2.GetComponent<ItemScript1>().SetItemInfo("setting", "Setting", "2");
TreeViewItem item3 = mTreeView.AppendItem("ItemPrefab1");
item3.GetComponent<ItemScript1>().SetItemInfo("folder", "Folder", "3");
TreeViewItem item4 = mTreeView.AppendItem("ItemPrefab1");
item4.GetComponent<ItemScript1>().SetItemInfo("lock", "Lock", "4");
TreeViewItem item5 = mTreeView.AppendItem("ItemPrefab1");
item5.GetComponent<ItemScript1>().SetItemInfo("photo", "Photo", "5");
TreeViewItem childItem1_1 = item1.ChildTree.AppendItem("ItemPrefab1");
childItem1_1.GetComponent<ItemScript1>().SetItemInfo("movie", "Movie", "1_1");
TreeViewItem childItem1_2 = item1.ChildTree.AppendItem("ItemPrefab1");
childItem1_2.GetComponent<ItemScript1>().SetItemInfo("song", "Song", "1_2");
TreeViewItem childItem1_3 = item1.ChildTree.AppendItem("ItemPrefab1");
childItem1_3.GetComponent<ItemScript1>().SetItemInfo("trash", "Trash", "1_3");
TreeViewItem childItem1_4 = item1.ChildTree.AppendItem("ItemPrefab1");
childItem1_4.GetComponent<ItemScript1>().SetItemInfo("time", "Time", "1_4");
TreeViewItem childItem1_1_1 = childItem1_1.ChildTree.AppendItem("ItemPrefab2");
childItem1_1_1.GetComponent<ItemScript1>().SetItemInfo("", "Camera", "1_1_1");
TreeViewItem childItem1_1_2 = childItem1_1.ChildTree.AppendItem("ItemPrefab1");
childItem1_1_2.GetComponent<ItemScript1>().SetItemInfo("tools", "Tools", "1_1_2");
TreeViewItem childItem1_1_2_1 = childItem1_1_2.ChildTree.AppendItem("ItemPrefab1");
childItem1_1_2_1.GetComponent<ItemScript1>().SetItemInfo("link", "Link", "1_1_2_1");
TreeViewItem childItem1_1_2_2 = childItem1_1_2.ChildTree.AppendItem("ItemPrefab1");
childItem1_1_2_2.GetComponent<ItemScript1>().SetItemInfo("game", "Game", "1_1_2_2");
TreeViewItem childItem1_1_2_2_1 = childItem1_1_2_2.ChildTree.AppendItem("ItemPrefab1");
childItem1_1_2_2_1.GetComponent<ItemScript1>().SetItemInfo("diamond", "Diamond", "1_1_2_2_1");
TreeViewItem childItem3_1 = item3.ChildTree.AppendItem("ItemPrefab1");
childItem3_1.GetComponent<ItemScript1>().SetItemInfo("download", "Download", "3_1");
TreeViewItem childItem3_2 = item3.ChildTree.AppendItem("ItemPrefab1");
childItem3_2.GetComponent<ItemScript1>().SetItemInfo("favorite", "Favorite", "3_2");
}
void OnItemExpandBegin(TreeViewItem item)
{
ItemScript1 st = item.GetComponent<ItemScript1>();
st.SetExpandStatus(true);
}
void OnItemCollapseBegin(TreeViewItem item)
{
ItemScript1 st = item.GetComponent<ItemScript1>();
st.SetExpandStatus(false);
}
void OnItemCustomEvent(TreeViewItem item, CustomEvent customEvent, System.Object param)
{
if (customEvent == CustomEvent.ItemClicked)
{
ItemScript1 st = item.GetComponent<ItemScript1>();
if (mCurSelectedItemId > 0)
{
if (item.ItemId == mCurSelectedItemId)
{
return;
}
TreeViewItem curSelectedItem = mTreeView.GetTreeItemById(mCurSelectedItemId);
if (curSelectedItem != null)
{
curSelectedItem.GetComponent<ItemScript1>().IsSelected = false;
}
mCurSelectedItemId = 0;
}
st.IsSelected = true;
mCurSelectedItemId = item.ItemId;
}
}
void OnTreeListAddOneItem(TreeList treeList)
{
int count = treeList.ItemCount;
TreeViewItem parentTreeItem = treeList.ParentTreeItem;
if (count > 0 && parentTreeItem != null)
{
ItemScript1 st = parentTreeItem.GetComponent<ItemScript1>();
st.SetExpandBtnVisible(true);
st.SetExpandStatus(parentTreeItem.IsExpand);
}
}
void OnTreeListDeleteOneItem(TreeList treeList)
{
int count = treeList.ItemCount;
TreeViewItem parentTreeItem = treeList.ParentTreeItem;
if (count == 0 && parentTreeItem != null)
{
ItemScript1 st = parentTreeItem.GetComponent<ItemScript1>();
st.SetExpandBtnVisible(false);
}
}
TreeViewItem CurSelectedItem
{
get
{
if(mCurSelectedItemId <= 0)
{
return null;
}
TreeViewItem item = mTreeView.GetTreeItemById(mCurSelectedItemId);
if(item == null)
{
mCurSelectedItemId = 0;
return null;
}
return item;
}
}
public void OnExpandAllBtnClicked()
{
mTreeView.ExpandAllItem();
}
public void OnCollapseAllBtnClicked()
{
mTreeView.CollapseAllItem();
}
public void OnExpandBtnClicked()
{
TreeViewItem item = CurSelectedItem;
if (item == null)
{
Debug.Log("Please Select a Item First");
return;
}
item.Expand();
}
public void OnCollapseBtnClicked()
{
TreeViewItem item = CurSelectedItem;
if (item == null)
{
Debug.Log("Please Select a Item First");
return;
}
item.Collapse();
}
public void OnInsertBeforeBtnClicked()
{
mNewItemCount++;
if (mTreeView.IsEmpty)
{
TreeViewItem childItem = mTreeView.InsertItem(0, "ItemPrefab1");
childItem.GetComponent<ItemScript1>().SetItemInfo("movie", "Movie" + mNewItemCount);
}
else
{
TreeViewItem item = CurSelectedItem;
if (item == null)
{
Debug.Log("Please Select a Item First");
return;
}
TreeViewItem childItem = item.ParentTreeList.InsertItem(item.ItemIndex, "ItemPrefab1");
childItem.GetComponent<ItemScript1>().SetItemInfo("movie", "Movie" + mNewItemCount);
}
}
public void OnInsertAfterBtnClicked()
{
mNewItemCount++;
if (mTreeView.IsEmpty)
{
TreeViewItem childItem = mTreeView.InsertItem(0, "ItemPrefab1");
childItem.GetComponent<ItemScript1>().SetItemInfo("movie", "Movie"+mNewItemCount);
}
else
{
TreeViewItem item = CurSelectedItem;
if (item == null)
{
Debug.Log("Please Select a Item First");
return;
}
TreeViewItem childItem = item.ParentTreeList.InsertItem(item.ItemIndex+1, "ItemPrefab1");
childItem.GetComponent<ItemScript1>().SetItemInfo("movie", "Movie" + mNewItemCount);
}
}
public void OnAddChildBtnClicked()
{
mNewItemCount++;
if (mTreeView.IsEmpty)
{
TreeViewItem childItem = mTreeView.AppendItem("ItemPrefab1");
childItem.GetComponent<ItemScript1>().SetItemInfo("movie", "Movie" + mNewItemCount);
}
else
{
TreeViewItem item = CurSelectedItem;
if (item == null)
{
Debug.Log("Please Select a Item First");
return;
}
TreeViewItem childItem = item.ChildTree.AppendItem("ItemPrefab1");
childItem.GetComponent<ItemScript1>().SetItemInfo("movie", "Movie" + mNewItemCount);
}
}
public void OnDeleteBtnClicked()
{
TreeViewItem item = CurSelectedItem;
if (item == null)
{
Debug.Log("Please Select a Item First");
return;
}
item.ParentTreeList.DeleteItem(item);
}
public void OnBackBtnClicked()
{
UnityEngine.SceneManagement.SceneManager.LoadScene("MainMenu");
}
}
}