83 lines
2.6 KiB
C#
83 lines
2.6 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using XRLib.UI;
|
|
using UnityEngine.UI;
|
|
using TMPro;
|
|
using System;
|
|
|
|
namespace Studio
|
|
{
|
|
public enum UIDesignStyle
|
|
{
|
|
Sample1,
|
|
Sample2,
|
|
Sample3
|
|
}
|
|
public class UI_DynamicObjectUISettingItem : UIBase
|
|
{
|
|
private TextMeshProUGUI Text_ClassName;
|
|
private TMP_Dropdown Dropdown_UIDesignStyle;
|
|
private RectTransform DataContent;
|
|
|
|
private UI_DynamicDataStyleItem prf_DynamicDataStyleItem;
|
|
private List<UI_DynamicDataStyleItem> dynamicDataStyleItems = new List<UI_DynamicDataStyleItem>();
|
|
|
|
public List<DataList> dynamicObjectDatas = new List<DataList>();
|
|
|
|
public void SetData(DataList dynamicObjectDatas, UI_DynamicDataStyleItem dynamicDataStyleItem)
|
|
{
|
|
Text_ClassName.SetText(dynamicObjectDatas.name);
|
|
prf_DynamicDataStyleItem = dynamicDataStyleItem;
|
|
|
|
SetUIDesignStyleDropdown(dynamicObjectDatas);
|
|
SetDataItems(dynamicObjectDatas.datas);
|
|
}
|
|
private void SetUIDesignStyleDropdown(DataList dataList)
|
|
{
|
|
Dropdown_UIDesignStyle.ClearOptions();
|
|
var types = Enum.GetNames(typeof(UIDesignStyle));
|
|
List<string> options = new List<string>();
|
|
|
|
options.Add("Select Dashboard Style");
|
|
|
|
for (int i = 0; i < types.Length; i++)
|
|
{
|
|
options.Add(types[i]);
|
|
}
|
|
Dropdown_UIDesignStyle.AddOptions(options);
|
|
|
|
if (dataList.dashboardStyle != string.Empty)
|
|
{
|
|
Dropdown_UIDesignStyle.value = options.IndexOf(dataList.dashboardStyle);
|
|
}
|
|
}
|
|
private void SetDataItems(List<Datum> datas)
|
|
{
|
|
foreach(var item in dynamicDataStyleItems)
|
|
{
|
|
Destroy(item.gameObject);
|
|
}
|
|
dynamicDataStyleItems.Clear();
|
|
|
|
foreach(var data in datas)
|
|
{
|
|
var item = Instantiate(prf_DynamicDataStyleItem, DataContent);
|
|
item.SetData(data);
|
|
dynamicDataStyleItems.Add(item);
|
|
}
|
|
}
|
|
public DataList GetDataList()
|
|
{
|
|
DataList dataList = new DataList();
|
|
dataList.name = Text_ClassName.text;
|
|
dataList.dashboardStyle = Dropdown_UIDesignStyle.options[Dropdown_UIDesignStyle.value].text;
|
|
|
|
foreach (var dynamicDataStyleItem in dynamicDataStyleItems)
|
|
{
|
|
dataList.datas.Add(dynamicDataStyleItem.GetDatum());
|
|
}
|
|
return dataList;
|
|
}
|
|
}
|
|
}
|