Files
XRLib/Assets/Scripts/SHI/modal/ModelDetailChartView.cs
2025-11-14 19:54:04 +09:00

62 lines
1.8 KiB
C#

#nullable enable
using System;
using UnityEngine;
namespace SHI.modal
{
/// <summary>
/// 차트 패널: 간트 데이터 바인딩/선택 동기화용 경량 래퍼.
/// 실제 UI Toolkit 간트 구현 전까지 스텁 동작을 수행합니다.
/// </summary>
public class ModelDetailChartView : MonoBehaviour
{
public Action<string>? OnRowClickedByKey;
public Action<Guid>? OnRowClicked; // backward compat
private GanttChartData? _data;
/// <summary>
/// 간트 데이터를 바인딩합니다(스텁 구현).
/// </summary>
public void LoadData(GanttChartData data)
{
_data = data;
Debug.Log($"ModelDetailChartView.LoadData: segments={data?.Segments?.Count ??0}");
}
/// <summary>
/// 외부 키로 행을 하이라이트합니다.
/// </summary>
public void SelectByItemKey(string key)
{
if (_data == null) { Debug.Log("ChartView.SelectByItemKey: no data"); return; }
Debug.Log($"Chart highlight by key: {key}");
}
/// <summary>
/// Guid 식별자로 행을 하이라이트합니다.
/// </summary>
public void SelectByItemId(Guid id)
{
if (_data == null) { Debug.Log("ChartView.SelectByItemId: no data"); return; }
Debug.Log($"Chart highlight by id: {id}");
}
// UI 시뮬레이션 콜백
public void SimulateRowClickKey(string key)
{
OnRowClickedByKey?.Invoke(key);
}
public void SimulateRowClick(string id)
{
if (Guid.TryParse(id, out var guid)) OnRowClicked?.Invoke(guid);
}
/// <summary>
/// 바인딩된 데이터를 해제합니다.
/// </summary>
public void Dispose() { _data = null; }
}
}