128 lines
4.6 KiB
C#
128 lines
4.6 KiB
C#
using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs;
|
|
using Studio;
|
|
using Studio.Setting.Connect;
|
|
using Studio.UI;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using XRLib.UI;
|
|
using Newtonsoft.Json;
|
|
using Best.HTTP.JSON;
|
|
using UnityEngine.UI;
|
|
|
|
namespace XED.UI
|
|
{
|
|
public class Panel_Repository : PanelBase
|
|
{
|
|
RectTransform ProtocolLabels;
|
|
RectTransform BaseDataList;
|
|
RectTransform Info_API;
|
|
RectTransform Info_BaseInfo;
|
|
|
|
public UI_BaseDataButton baseDataButtonPrefab;
|
|
|
|
TextMeshProUGUI TotalRequestPacketSize;
|
|
TextMeshProUGUI AverageRequestPacketSize;
|
|
TextMeshProUGUI TotalResponsePacketSize;
|
|
TextMeshProUGUI AverageResponsePacketSize;
|
|
TextMeshProUGUI MaximumResponseTime;
|
|
TextMeshProUGUI AverageResponseTime;
|
|
TextMeshProUGUI MaximumRequestPacketAPI;
|
|
TextMeshProUGUI MaximumResponsePacketAPI;
|
|
TextMeshProUGUI MaximumResponseTimeAPI;
|
|
|
|
TextMeshProUGUI RawData;
|
|
RectTransform rawDataRect;
|
|
float rawDataFoldHeight;
|
|
float rawDataOriginHeight;
|
|
RectTransform RawDataFoldButton;
|
|
bool isRawDataFoldOn;
|
|
|
|
public override void AfterAwake()
|
|
{
|
|
UI_ProtocolLabel[] protocolLabels = GetComponentsInChildren<UI_ProtocolLabel>();
|
|
foreach (UI_ProtocolLabel label in protocolLabels)
|
|
{
|
|
label.panel_Repository = this;
|
|
}
|
|
|
|
StudioService.Instance.onDataLoaded += CreateAPIListButton;
|
|
|
|
baseDataButtonPrefab = Resources.Load<UI_BaseDataButton>("Prefabs/UI/Button/UI_BaseDataButton");
|
|
|
|
rawDataRect = RawData.GetComponent<RectTransform>();
|
|
rawDataFoldHeight = rawDataRect.sizeDelta.y;
|
|
RawDataFoldButton.GetComponent<Button>().onClick.AddListener(OnClickRawDataFoldButton);
|
|
}
|
|
|
|
void CreateAPIListButton(string name, StudioEntityWithState<object> value)
|
|
{
|
|
var button = Instantiate(baseDataButtonPrefab, BaseDataList.transform);
|
|
button.panel_Repository = this;
|
|
button.SetButtonData(name, value);
|
|
|
|
RebuildLayout();
|
|
}
|
|
|
|
void RebuildLayout()
|
|
{
|
|
LayoutRebuilder.ForceRebuildLayoutImmediate(BaseDataList);
|
|
LayoutRebuilder.ForceRebuildLayoutImmediate(ProtocolLabels);
|
|
}
|
|
|
|
public void ShowInformation_API()
|
|
{
|
|
APITotalBoardEntity info = StudioService.Instance.GetAPIStatusBoarder();
|
|
|
|
TotalRequestPacketSize.text = info.TotalRequestPacketSize.ToString();
|
|
AverageRequestPacketSize.text = info.AverageRequestPacketSize.ToString();
|
|
TotalResponsePacketSize.text = info.TotalResponsePacketSize.ToString();
|
|
AverageResponsePacketSize.text = info.AverageResponsePacketSize.ToString();
|
|
MaximumResponseTime.text = info.MaximumResponseTime.ToString();
|
|
AverageResponseTime.text = info.AverageResponseTime.ToString();
|
|
MaximumRequestPacketAPI.text = info.MaximumRequestPacketAPI;
|
|
MaximumResponsePacketAPI.text = info.MaximumResponsePacketAPI;
|
|
MaximumResponseTimeAPI.text = info.MaximumResponseTimeAPI;
|
|
|
|
Info_API.gameObject.SetActive(true);
|
|
Info_BaseInfo.gameObject.SetActive(false);
|
|
}
|
|
|
|
public void ShowInformation_BaseInfo(StudioEntityWithState<object> baseDataValue)
|
|
{
|
|
RawData.text = JsonConvert.SerializeObject(baseDataValue.Entity, Formatting.Indented);
|
|
|
|
rawDataRect = RawData.GetComponent<RectTransform>();
|
|
|
|
rawDataOriginHeight = RawData.preferredHeight;
|
|
rawDataOriginHeight = Mathf.Max(rawDataFoldHeight, rawDataOriginHeight);
|
|
|
|
Vector2 sizeDelta = rawDataRect.sizeDelta;
|
|
sizeDelta.y = rawDataOriginHeight;
|
|
rawDataRect.sizeDelta = sizeDelta;
|
|
|
|
Info_API.gameObject.SetActive(false);
|
|
Info_BaseInfo.gameObject.SetActive(true);
|
|
}
|
|
|
|
void OnClickRawDataFoldButton()
|
|
{
|
|
if (isRawDataFoldOn)
|
|
{
|
|
Vector2 sizeDelta = rawDataRect.sizeDelta;
|
|
sizeDelta.y = rawDataOriginHeight;
|
|
rawDataRect.sizeDelta = sizeDelta;
|
|
RawDataFoldButton.localRotation = Quaternion.Euler(0, 0, 0);
|
|
isRawDataFoldOn = false;
|
|
}
|
|
else
|
|
{
|
|
Vector2 sizeDelta = rawDataRect.sizeDelta;
|
|
sizeDelta.y = rawDataFoldHeight;
|
|
rawDataRect.sizeDelta = sizeDelta;
|
|
RawDataFoldButton.localRotation = Quaternion.Euler(0f, 0f, 180f);
|
|
isRawDataFoldOn = true;
|
|
}
|
|
}
|
|
}
|
|
}
|