Files
XRLib/Assets/Scripts/Studio/UIToolkit/Modal/UTKSettingModalContentDB.cs
2026-02-24 20:01:56 +09:00

98 lines
2.7 KiB
C#

#nullable enable
using Cysharp.Threading.Tasks;
using System;
using UnityEngine;
using UnityEngine.UIElements;
using UVC.UIToolkit;
namespace UVC.Studio.UIToolkit.Modal
{
/// <summary>
/// 설정 모달 - Database 탭 콘텐츠
/// </summary>
[UxmlElement]
public partial class UTKSettingModalContentDB : VisualElement, IDisposable, IUTKTabContent
{
#region Constants
private const string UXML_PATH = "Studio/UIToolkit/Modal/UTKSettingModalContentDBUXML";
#endregion
#region Fields
private bool _disposed;
private UTKInputField? _dbIpField;
private UTKInputField? _dbPortField;
private UTKInputField? _dbIdField;
private UTKInputField? _dbPasswordField;
#endregion
#region Properties
/// <summary>Database IP</summary>
public string DbIp => _dbIpField?.value ?? "";
/// <summary>Database PORT</summary>
public string DbPort => _dbPortField?.value ?? "";
/// <summary>Database ID</summary>
public string DbId => _dbIdField?.value ?? "";
/// <summary>Database PASSWORD</summary>
public string DbPassword => _dbPasswordField?.value ?? "";
#endregion
#region Constructor
public UTKSettingModalContentDB()
{
var asset = Resources.Load<VisualTreeAsset>(UXML_PATH);
if (asset != null)
{
var root = asset.Instantiate();
root.style.flexGrow = 1;
// UTKInputField 참조 가져오기
var inputFields = root.Query<UTKInputField>().ToList();
foreach (var field in inputFields)
{
switch (field.label)
{
case "Database IP":
_dbIpField = field;
break;
case "Database PORT":
_dbPortField = field;
break;
case "Database ID":
_dbIdField = field;
break;
case "Database PASSWORD":
_dbPasswordField = field;
break;
}
}
Add(root);
}
}
#endregion
#region IUTKTabContent
public void Show(object? data)
{
}
public async UniTask Hide()
{
}
#endregion
#region IDisposable
public void Dispose()
{
if (_disposed) return;
_disposed = true;
}
#endregion
}
}