62 lines
1.8 KiB
C#
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; }
|
|
}
|
|
}
|