From 999c94ed1fb87ce29405a2080c87153cf228d153 Mon Sep 17 00:00:00 2001 From: geondo55 <102933884+geondo55@users.noreply.github.com> Date: Mon, 19 May 2025 18:42:00 +0900 Subject: [PATCH] =?UTF-8?q?1=EC=B0=A8=20=EA=B0=80=EC=83=81=20=EA=B3=B5?= =?UTF-8?q?=EC=9E=A5=20=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/NewStudioPGD/DashBoard.meta | 8 + .../NewStudioPGD/DashBoard/CreateUIPanel.cs | 19 + .../DashBoard/CreateUIPanel.cs.meta | 2 + .../DashBoard/DashBoardHeadLine.cs | 13 + .../DashBoard/DashBoardHeadLine.cs.meta | 11 + .../DashBoard/UICircleProgressBar.cs | 72 + .../DashBoard/UICircleProgressBar.cs.meta | 2 + .../NewStudioPGD/DashBoard/UIDetailButton.cs | 50 + .../DashBoard/UIDetailButton.cs.meta | 2 + Assets/NewStudioPGD/DashBoard/UINewHVC.cs | 42 + .../NewStudioPGD/DashBoard/UINewHVC.cs.meta | 11 + .../DashBoard/UINewLoadFactory.cs | 103 + .../DashBoard/UINewLoadFactory.cs.meta | 11 + .../DashBoard/UINewLoadFactroyItem.cs | 76 + .../DashBoard/UINewLoadFactroyItem.cs.meta | 11 + .../DashBoard/UINewStockerValue.cs | 116 ++ .../DashBoard/UINewStockerValue.cs.meta | 11 + .../DashBoard/UISideLoadFactory.cs | 128 ++ .../DashBoard/UISideLoadFactory.cs.meta | 11 + Assets/NewStudioPGD/SDIDashboard.unity | 1275 ++++++++++++ Assets/NewStudioPGD/SDIDashboard.unity.meta | 7 + .../NewStudioPGD/Scripts/SDIDashboardTest.cs | 72 + .../Scripts/SDIDashboardTest.cs.meta | 2 + Assets/NewStudioPGD/Scripts/TestEntitiy.cs | 10 + .../NewStudioPGD/Scripts/TestEntitiy.cs.meta | 2 + Assets/Resources/Prefabs/NewDashBoard.meta | 8 + .../NewDashBoard/UINewLoadFactroy.prefab | Bin 0 -> 40836 bytes .../NewDashBoard/UINewLoadFactroy.prefab.meta | 7 + .../NewDashBoard/UINewLoadFactroyItem.prefab | 760 ++++++++ .../UINewLoadFactroyItem.prefab.meta | 7 + .../NewDashBoard/UINewStockerValue.prefab | 1733 +++++++++++++++++ .../UINewStockerValue.prefab.meta | 7 + .../NewDashBoard/UISideLoadFactory.prefab | 645 ++++++ .../UISideLoadFactory.prefab.meta | 7 + 34 files changed, 5241 insertions(+) create mode 100644 Assets/NewStudioPGD/DashBoard.meta create mode 100644 Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs create mode 100644 Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs create mode 100644 Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs create mode 100644 Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/UIDetailButton.cs create mode 100644 Assets/NewStudioPGD/DashBoard/UIDetailButton.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/UINewHVC.cs create mode 100644 Assets/NewStudioPGD/DashBoard/UINewHVC.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs create mode 100644 Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs create mode 100644 Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs create mode 100644 Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs.meta create mode 100644 Assets/NewStudioPGD/DashBoard/UISideLoadFactory.cs create mode 100644 Assets/NewStudioPGD/DashBoard/UISideLoadFactory.cs.meta create mode 100644 Assets/NewStudioPGD/SDIDashboard.unity create mode 100644 Assets/NewStudioPGD/SDIDashboard.unity.meta create mode 100644 Assets/NewStudioPGD/Scripts/SDIDashboardTest.cs create mode 100644 Assets/NewStudioPGD/Scripts/SDIDashboardTest.cs.meta create mode 100644 Assets/NewStudioPGD/Scripts/TestEntitiy.cs create mode 100644 Assets/NewStudioPGD/Scripts/TestEntitiy.cs.meta create mode 100644 Assets/Resources/Prefabs/NewDashBoard.meta create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UINewLoadFactroy.prefab create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UINewLoadFactroy.prefab.meta create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UINewLoadFactroyItem.prefab create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UINewLoadFactroyItem.prefab.meta create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UINewStockerValue.prefab create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UINewStockerValue.prefab.meta create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UISideLoadFactory.prefab create mode 100644 Assets/Resources/Prefabs/NewDashBoard/UISideLoadFactory.prefab.meta diff --git a/Assets/NewStudioPGD/DashBoard.meta b/Assets/NewStudioPGD/DashBoard.meta new file mode 100644 index 00000000..e549df93 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74113b7751418504f8339133a27d9551 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs b/Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs new file mode 100644 index 00000000..8fb1ae66 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace Studio.UVC.UI +{ + public class CreateUIPanel : MonoBehaviour + { + // Start is called once before the first execution of Update after the MonoBehaviour is created + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + } +} diff --git a/Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs.meta b/Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs.meta new file mode 100644 index 00000000..0f41ca0d --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/CreateUIPanel.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e68ae67fb2043e64fb8447ecbd14b793 \ No newline at end of file diff --git a/Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs b/Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs new file mode 100644 index 00000000..6e878fa8 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DashBoardHeadLine : MonoBehaviour +{ + private RectTransform rectTransform; + public RectTransform RectTransform { get { return rectTransform; } } + private void Awake() + { + rectTransform = GetComponent(); + } +} diff --git a/Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs.meta b/Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs.meta new file mode 100644 index 00000000..5255c653 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/DashBoardHeadLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 00c1cf356f204f94fb55cfbce82d2d36 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs b/Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs new file mode 100644 index 00000000..18b9eecc --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs @@ -0,0 +1,72 @@ +using System.Linq; +using TMPro; +using UnityEngine; +using UnityEngine.Localization; +using UnityEngine.UI; + +namespace Studio.UVC.UI +{ + public class UICircleProgressBar : MonoBehaviour + { + private RectTransform FillHandler_Start; + private RectTransform FillHandler_End; + + private Image Image_fill_progressbar; + private Image Image_CricleField_start; + private Text Text_Value; + private TextMeshProUGUI Text_Average; + + public Color textColor; + public bool IsEndPointOn; + public void Init() + { + var recttransforms = GetComponentsInChildren(); + var images = GetComponentsInChildren(); + + FillHandler_Start = recttransforms.First(x=>x.name.Equals(nameof(FillHandler_Start))); + FillHandler_End = recttransforms.First(x => x.name.Equals(nameof(FillHandler_End))); + if(IsEndPointOn == false) + FillHandler_End.gameObject.SetActive(false); + Image_fill_progressbar = images.First(x => x.name.Equals(nameof(Image_fill_progressbar))); + Image_CricleField_start = images.First(x => x.name.Equals(nameof(Image_CricleField_start))); + + Text_Value = GetComponentInChildren(); + Text_Average = GetComponentInChildren(); + Text_Average.color = textColor; + } + + public float degree; + public void SetValue(float value) + { + var clampAmount = Mathf.Clamp((value-8.5f) / 100f, 0, 1); + Image_fill_progressbar.fillAmount = clampAmount; + var hexcode = HexCode(value); + //var color = ColorUtil.FromHex(hexcode); + //Image_fill_progressbar.color = color; + //Image_CricleField_start.color = color; + var clampZ = Mathf.Clamp((value * 3.6f) -40f, 35f, 320f); + FillHandler_Start.transform.localEulerAngles = new Vector3(0, 0, -clampZ); + Text_Value.text =$"{string.Format("{0:N1}" ,value)}%"; + } + + private string HexCode(float value) + { + var color = "#FFFFFF"; + + if (value > 90f) + { + color = "#FF0000"; + } + else if (value > 80f) + { + color = "#FFFF2F"; + } + else + { + color = "#00FF00"; + } + + return color; + } + } +} diff --git a/Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs.meta b/Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs.meta new file mode 100644 index 00000000..86ad65c4 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UICircleProgressBar.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5fd0588328460cf42b8e48547e25a5a3 \ No newline at end of file diff --git a/Assets/NewStudioPGD/DashBoard/UIDetailButton.cs b/Assets/NewStudioPGD/DashBoard/UIDetailButton.cs new file mode 100644 index 00000000..6f0d88b0 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UIDetailButton.cs @@ -0,0 +1,50 @@ +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.UI; +using XRLib.UI; + +namespace Studio.UVC.UI +{ + public class UIDetailButton : UIBase, ITabButton + { + public int Index { get; set; } + private Button button; + [SerializeField] + private bool selected = false; + public UnityEvent onClick = new UnityEvent(); + + public void Init() + { + button = GetComponent(); + + if (button != null) + { + button.onClick.AddListener(() => + { + if (selected) + { + selected = false; + } + else + { + selected = true; + } + onClick.Invoke(Index, selected); + }); + } + if (selected) Select(); + else Deselect(); + } + + public void Deselect() + { + selected = false; + } + + public void Select() + { + selected = true; + } + } +} + diff --git a/Assets/NewStudioPGD/DashBoard/UIDetailButton.cs.meta b/Assets/NewStudioPGD/DashBoard/UIDetailButton.cs.meta new file mode 100644 index 00000000..47e564ec --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UIDetailButton.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4fbbf8626703b7e479b10ed7a18b8380 \ No newline at end of file diff --git a/Assets/NewStudioPGD/DashBoard/UINewHVC.cs b/Assets/NewStudioPGD/DashBoard/UINewHVC.cs new file mode 100644 index 00000000..2d73ad55 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewHVC.cs @@ -0,0 +1,42 @@ +using UnityEngine; +using XED; + +namespace Studio.UVC.UI +{ + public class UINewHVC : UISideLoadFactory + { + private string[] hvcName = new string[0]; + + public override void Init() + { + base.Init(); + foreach (var itemName in hvcName) + { + var item = BaseSetLoadFactory(itemName); + } + ExpandYsize(); + } + + public override void ExpandYsize() + { + var expandSize = 28f + 12f + 24f + 4f; + expandSize += itemTable.Count * 48f + 4f + ((itemTable.Count - 1) * 16f); + rect.sizeDelta = new Vector2(rect.sizeDelta.x, expandSize); + } + + public override void SetItem(string titleName, string zoneName, string roomNumber, object entitiy) + { + if (!itemTable.ContainsKey(roomNumber)) + { + BaseSetLoadFactory(roomNumber); + ExpandYsize(); + } + this.titleName = titleName; + var hvcEntitiy = (HVCCapcityEntity)entitiy; + itemTable[roomNumber].SetItem(roomNumber, hvcEntitiy.CAPACITY,hvcEntitiy.TOTAL_CNT,hvcEntitiy.FULL_RACK); + AverageLoadFactory(); + TotalLoadedQuantity(); + } + } + +} diff --git a/Assets/NewStudioPGD/DashBoard/UINewHVC.cs.meta b/Assets/NewStudioPGD/DashBoard/UINewHVC.cs.meta new file mode 100644 index 00000000..733b04b9 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewHVC.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 76518525062edbe4684f045de11d04eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs b/Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs new file mode 100644 index 00000000..d3d13d30 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs @@ -0,0 +1,103 @@ +using Studio.UVC.Controller.UI; +using System.Collections.Generic; +using System.Linq; +using TMPro; +using UnityEditor.Localization.Plugins.XLIFF.V12; +using UnityEngine; +using UnityEngine.UI; +using XRLib.UI; + +namespace Studio.UVC.UI +{ + public class UINewLoadFactory : PanelBase + { + private TextMeshProUGUI Text_LoadFactory; + private TabController tabController = new(); + protected ScrollRect scrollRect; + private DashBoardHeadLine headLine; + + protected Dictionary itemTable = new(); + private UINewStockerValue item; + private RectTransform rect; + + public override void AfterAwake() + { + base.AfterAwake(); + //titleKey = "realtime_load_factor"; + Init(); + } + + public void Init() + { + rect = GetComponent(); + headLine = GetComponentInChildren(); + Text_LoadFactory = headLine.GetComponentInChildren(); + scrollRect = GetComponentInChildren(); + + ExpandYsize(); + } + + protected UINewStockerValue BaseSetLoadFactory(string itemName, RectTransform parent = null) + { + var key = itemName.Replace("\n", ""); + if (!itemTable.ContainsKey(key)) + { + var item = CreateItem(parent, key); + itemTable.Add(key, item); + + ExpandYsize(); + return item; + } + return null; + } + + private void ExpandYsize() + { + var expandSize = 28f + 12f + 24f + 4f; + expandSize += itemTable.Count * 169f + 4f + ((itemTable.Count - 1) * 16f); + rect.sizeDelta = new Vector2(rect.sizeDelta.x, expandSize); + } + + private UINewStockerValue CreateItem(RectTransform parent, string name) + { + if (item == null) + item = Resources.Load(UINewStockerValue.PrefabPath); + + parent = parent == null ? scrollRect.content : parent; + var newItem = Instantiate(item, parent); + newItem.name = name; + newItem.transform.localScale = Vector3.one; + newItem.InIt(tabController); + newItem.Button_Details.onClick.AddListener((int index, bool selected) => + { + if (selected) + { + tabController.Select(index); + } + else + tabController.Deselect(); + }); + + tabController.Add(newItem.Button_Details, newItem); + + return newItem; + } + + public void SetItem(string titleName, string zoneName, string roomNumber, object entitiy) + { + if(!itemTable.ContainsKey(titleName)) + { + BaseSetLoadFactory(roomNumber); + ExpandYsize(); + } + itemTable[titleName].SetItem(zoneName, roomNumber, entitiy); + } + + public void Deselect() + { + tabController.Deselect(); + gameObject.SetActive(false); + } + } +} + diff --git a/Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs.meta b/Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs.meta new file mode 100644 index 00000000..a094de8c --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewLoadFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91f1945b0d450c7449b410c927d0abf9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs b/Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs new file mode 100644 index 00000000..1fc07e23 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs @@ -0,0 +1,76 @@ +using System.Linq; +using TMPro; +using UnityEngine; +using UnityEngine.Localization; +using UnityEngine.UI; +using XRLib.UI; + +namespace Studio.UVC.UI +{ + public class UINewLoadFactroyItem : UIBase + { + public static string PrefabsPath = "Prefabs/NewDashBoard/UINewLoadFactroyItem"; + + private TextMeshProUGUI Text_Total; + private TextMeshProUGUI Text_LoadedQuantity; + private TextMeshProUGUI Text_RoomName; + private TextMeshProUGUI Text_Rate; + private Image Image_Chart; + private Image Image_Chart_Bg; + + private float percent; + public float Percent { get => percent; } + + private int total; + public int Total { get => total; } + private int trayCount; + public int TrayCount { get => trayCount; } + + private bool isFirst = false; + private bool ishvc = false; + private RectTransform rect; + public RectTransform Rect { get { return rect; } } + + public Color color; + + private void Init() + { + rect = GetComponent(); + var textmeshpros = GetComponentsInChildren(); + Text_Total = textmeshpros.First(x => x.name.Equals(nameof(Text_Total))); + Text_Rate = textmeshpros.First(x => x.name.Equals(nameof(Text_Rate))); + //Text_LoadedQuantity = textmeshpros.First(x => x.name.Equals(nameof(Text_LoadedQuantity))); + Text_RoomName = textmeshpros.First(x => x.name.Equals(nameof(Text_RoomName))); + var images = GetComponentsInChildren(); + Image_Chart_Bg = images.First(x => x.name.Equals(nameof(Image_Chart_Bg))); + Image_Chart = images.First(x => x.name.Equals(nameof(Image_Chart))); + Image_Chart_Bg.color = color; + Image_Chart.color = color; + isFirst = true; + + // Test + Text_LoadedQuantity.text = ""; + } + + + public void SetItem(string roomName, string value, string total =null, string count = null) + { + if (isFirst == false) + Init(); + + Text_RoomName.text = roomName; + Text_LoadedQuantity.text = ""; + float.TryParse(value, out var chartValue); + + Image_Chart.fillAmount = chartValue / 100f; + percent = chartValue; + Text_Rate.text = $"{chartValue}%"; + if(total != null) + { + Text_Total.text = $"{count}/{total}ea"; + this.trayCount = int.Parse(count); + this.total = int.Parse(total); + } + } + } +} diff --git a/Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs.meta b/Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs.meta new file mode 100644 index 00000000..13bdbf1e --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewLoadFactroyItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd225f4eeab64434ca41baeccfbba564 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs b/Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs new file mode 100644 index 00000000..e67cc23c --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs @@ -0,0 +1,116 @@ +using Studio.UVC.Controller.UI; +using System; +using System.Linq; +using TMPro; +using UnityEngine; +using UnityEngine.Localization; +using UnityEngine.UI; + +namespace Studio.UVC.UI +{ + public class UINewStockerValue : MonoBehaviour, ITabContent + { + public static string PrefabPath = "Prefabs/NewDashBoard/UINewStockerValue"; + + private TextMeshProUGUI Text_Title; + private TextMeshProUGUI Text_Total; + private TextMeshProUGUI Text_TrayCount; + private TextMeshProUGUI Text_TrayTotalCount; + + private UICircleProgressBar circle_Progressbar; + private UIDetailButton button_viewDetails; + public Action onCloseSidePanel; + public UIDetailButton Button_Details { get => button_viewDetails; } + + private string titleName; + private UISideLoadFactory sideItem; + + private RectTransform rect; + private Image image; + public int Index { get; set; } + private TabController controller; + + public void InIt(TabController tabController) + { + controller = tabController; + rect = GetComponent(); + image = GetComponent(); + var textMeshPros = GetComponentsInChildren(); + Text_Title = textMeshPros.First(x => x.name.Equals(nameof(Text_Title))); + Text_Total = textMeshPros.First(x => x.name.Equals(nameof(Text_Total))); + Text_TrayCount = textMeshPros.First(x => x.name.Equals(nameof(Text_TrayCount))); + Text_TrayTotalCount = textMeshPros.First(x => x.name.Equals(nameof(Text_TrayTotalCount))); + circle_Progressbar = GetComponentInChildren(); + circle_Progressbar.Init(); + button_viewDetails = GetComponentInChildren(); + button_viewDetails.Init(); + sideItem = Create(); + sideItem.Init(); + sideItem.onClickClose += DeSelect; + sideItem.SetPosition(new Vector3(rect.position.x - (rect.sizeDelta.x * 0.5f), rect.position.y)); + image.enabled = false; + } + + internal void SetItem(string zoneName, string roomNumber, object entity) + { + sideItem.SetItem(titleName, zoneName, roomNumber, entity); + Average(); + } + + private void DeSelect() + { + //ΐΜΉΜΑφ + image.enabled = false; + //button_viewDetails.Deselect(); + controller.Deselect(); + } + + private void Average() + { + circle_Progressbar.SetValue(sideItem.Average); + Text_Total.text = "total"; + Text_TrayCount.text = $"{string.Format("{0:#,###}", sideItem.TrayCount)}"; + Text_TrayTotalCount.text = $"/{string.Format("{0:#,###}", sideItem.Total)}ea"; + Text_TrayCount.rectTransform.anchoredPosition = new Vector3(-(Text_TrayCount.preferredWidth), Text_TrayCount.rectTransform.anchoredPosition.y); + Text_Total.rectTransform.anchoredPosition = new Vector3(-(Text_TrayCount.preferredWidth) - Text_Total.rectTransform.sizeDelta.x - 4f, Text_Total.rectTransform.anchoredPosition.y); + } + + private UISideLoadFactory Create() + { + var room = name.Split('_'); + var asset = Resources.Load(UISideLoadFactory.PrefabsPath); + var canvas = FindObjectOfType(); + var item = Instantiate(asset, canvas.transform); + item.transform.localScale = Vector3.one; + switch (room[1]) + { + case "HVC": + var hvcitem = item.AddComponent(); + titleName = "hvc"; + return hvcitem; + default: + var testitem = item.AddComponent(); + titleName = "test"; + return testitem; + } + } + + public void Show() + { + if (sideItem == null) + return; + image.enabled = true; + sideItem.SetPosition(new Vector3(rect.position.x - (rect.sizeDelta.x * 0.5f), rect.position.y)); + sideItem.Show(); + } + + public void Hide() + { + if (sideItem == null) + return; + image.enabled = false; + sideItem.Hide(); + } + } + +} diff --git a/Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs.meta b/Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs.meta new file mode 100644 index 00000000..e87ef438 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UINewStockerValue.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad249143eaba4224aa632f3ce1fc9d6c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewStudioPGD/DashBoard/UISideLoadFactory.cs b/Assets/NewStudioPGD/DashBoard/UISideLoadFactory.cs new file mode 100644 index 00000000..5e7bbe52 --- /dev/null +++ b/Assets/NewStudioPGD/DashBoard/UISideLoadFactory.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace Studio.UVC.UI +{ + public abstract class UISideLoadFactory : MonoBehaviour + { + public static string PrefabsPath = "Prefabs/NewDashBoard/UISideLoadFactory"; + + private RectTransform canvasRect; + private Button button_close; + protected string titleName; + protected TextMeshProUGUI Text_Title; + protected ScrollRect scrollRect; + + private UINewLoadFactroyItem item; + protected RectTransform rect; + + protected Dictionary itemTable = new(); + + protected float average; + public float Average { get => average; } + + protected int total; + public int Total { get => total; } + protected int trayCount; + public int TrayCount { get => trayCount; } + + public virtual void Init() + { + rect = GetComponent(); + button_close = GetComponentInChildren