Data Repository 모달

This commit is contained in:
jmaniuvc
2025-05-22 18:29:09 +09:00
parent c99b61e031
commit 2b4e5cdcb2
4 changed files with 363 additions and 63 deletions

View File

@@ -1,15 +1,20 @@
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
{
public RectTransform BaseDataList;
RectTransform ProtocolLabels;
RectTransform BaseDataList;
RectTransform Info_API;
RectTransform Info_BaseInfo;
@@ -25,6 +30,13 @@ namespace XED.UI
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>();
@@ -36,15 +48,26 @@ namespace XED.UI
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.SetButtonName(name);
button.SetButtonData(name, value);
RebuildLayout();
}
void RebuildLayout()
{
LayoutRebuilder.ForceRebuildLayoutImmediate(BaseDataList);
LayoutRebuilder.ForceRebuildLayoutImmediate(ProtocolLabels);
}
public void ShowInformation_API()
{
@@ -64,12 +87,41 @@ namespace XED.UI
Info_BaseInfo.gameObject.SetActive(false);
}
public void ShowInformation_BaseInfo()
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;
}
}
}
}

View File

@@ -2145,17 +2145,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 141520860}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 351146144}
m_Children:
- {fileID: 1028207873}
m_Father: {fileID: 615232052}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 292, y: 0}
m_SizeDelta: {x: 584, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &141520862
MonoBehaviour:
@@ -2224,7 +2225,7 @@ MonoBehaviour:
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_overflowMode: 3
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
@@ -5533,51 +5534,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 335440197}
m_CullTransparentMesh: 1
--- !u!1 &351146143
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 351146144}
- component: {fileID: 351146145}
m_Layer: 0
m_Name: RawData
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &351146144
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 351146143}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 141520861}
m_Father: {fileID: 615232052}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &351146145
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 351146143}
m_CullTransparentMesh: 1
--- !u!1 &351287972
GameObject:
m_ObjectHideFlags: 0
@@ -8807,6 +8763,7 @@ GameObject:
- component: {fileID: 501984981}
- component: {fileID: 501984983}
- component: {fileID: 501984984}
- component: {fileID: 501984985}
m_Layer: 0
m_Name: Info_API
m_TagString: Untagged
@@ -8877,6 +8834,20 @@ MonoBehaviour:
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &501984985
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 501984980}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!1 &502356474
GameObject:
m_ObjectHideFlags: 0
@@ -10862,6 +10833,7 @@ GameObject:
- component: {fileID: 615232052}
- component: {fileID: 615232054}
- component: {fileID: 615232053}
- component: {fileID: 615232055}
m_Layer: 0
m_Name: Info_BaseInfo
m_TagString: Untagged
@@ -10883,7 +10855,7 @@ RectTransform:
m_Children:
- {fileID: 1788110034}
- {fileID: 1797410086}
- {fileID: 351146144}
- {fileID: 141520861}
- {fileID: 404442133}
- {fileID: 1746275389}
- {fileID: 1480168123}
@@ -10929,6 +10901,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 615232051}
m_CullTransparentMesh: 1
--- !u!114 &615232055
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 615232051}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!1 &617235294
GameObject:
m_ObjectHideFlags: 0
@@ -12050,8 +12036,9 @@ GameObject:
- component: {fileID: 699527317}
- component: {fileID: 699527319}
- component: {fileID: 699527318}
- component: {fileID: 699527320}
m_Layer: 0
m_Name: Protocol Labels
m_Name: ProtocolLabels
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -12105,6 +12092,20 @@ MonoBehaviour:
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &699527319
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 699527316}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!114 &699527320
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -16699,6 +16700,126 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1025026121}
m_CullTransparentMesh: 0
--- !u!1 &1028207872
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1028207873}
- component: {fileID: 1028207876}
- component: {fileID: 1028207875}
- component: {fileID: 1028207874}
m_Layer: 5
m_Name: RawDataFoldButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1028207873
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1028207872}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 141520861}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -12, y: -15}
m_SizeDelta: {x: 16, y: 16}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1028207874
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1028207872}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: d5c740338b0b3784783863fc03a6103b, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &1028207875
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1028207872}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1028207874}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!222 &1028207876
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1028207872}
m_CullTransparentMesh: 1
--- !u!1 &1038404813
GameObject:
m_ObjectHideFlags: 0
@@ -19196,7 +19317,8 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Children:
- {fileID: 1942985781}
m_Father: {fileID: 1797410086}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
@@ -23242,7 +23364,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: fc83cec290db6c04894ded65f588dc32, type: 3}
m_Name:
m_EditorClassIdentifier:
BaseDataList: {fileID: 0}
baseDataButtonPrefab: {fileID: 0}
--- !u!1 &1254287958
GameObject:
@@ -32946,6 +33067,126 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
currentDataSettingItem: {fileID: 0}
--- !u!1 &1942985780
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1942985781}
- component: {fileID: 1942985784}
- component: {fileID: 1942985783}
- component: {fileID: 1942985782}
m_Layer: 5
m_Name: FoldButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1942985781
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1942985780}
m_LocalRotation: {x: 0, y: 0, z: -1, w: 0}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1168210459}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -180}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -12, y: -15}
m_SizeDelta: {x: 16, y: 16}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1942985782
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1942985780}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: d5c740338b0b3784783863fc03a6103b, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &1942985783
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1942985780}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1942985782}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!222 &1942985784
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1942985780}
m_CullTransparentMesh: 1
--- !u!1 &1951806312
GameObject:
m_ObjectHideFlags: 0

View File

@@ -2,6 +2,8 @@ using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XED.UI;
using Studio.Setting.Connect;
namespace XED
{
@@ -12,6 +14,9 @@ namespace XED
Button button;
TextMeshProUGUI buttonName;
string baseDataKey;
StudioEntityWithState<object> baseDataValue;
private void Awake()
{
button = GetComponent<Button>();
@@ -22,13 +27,15 @@ namespace XED
void OnClickButton()
{
panel_Repository.ShowInformation_BaseInfo();
panel_Repository.ShowInformation_BaseInfo(baseDataValue);
}
public void SetButtonName(string name)
public void SetButtonData(string name, StudioEntityWithState<object> data)
{
buttonName.text = name;
baseDataKey = name;
baseDataValue = data;
buttonName.text = name;
}
}
}

View File

@@ -31,7 +31,7 @@ namespace XED.UI
void OnClickFoldButton()
{
Debug.Log("Fold ¹öư ´­¸²");
}
public void SetButtonName(string name)