Files
ChunilENG/Assets/WorkSpace/Personal/JYM/UI_GraphChart.cs

104 lines
2.9 KiB
C#
Raw Normal View History

2025-03-10 16:42:23 +09:00
using ChartAndGraph;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.EventSystems;
using WI;
using TMPro;
using static ChartAndGraph.GraphChartBase;
public class UI_GraphChart : UIBase, IPointerClickHandler
{
public GraphChart Graph;
2025-03-12 09:55:47 +09:00
//public UI_DateTime prf_dateTime;
//public RectTransform Content_DateTime;
2025-03-10 16:42:23 +09:00
private UI_GraphChartData chartDetailData;
private TextMeshProUGUI GraphName;
2025-03-10 16:42:23 +09:00
public string graphName;
public bool isMainChart;
public Action<string> onClickChart;
private List<float> graphChartData = new List<float>();
private List<string> graphDateTimeData = new List<string>();
private TextMeshProUGUI MinValue;
private TextMeshProUGUI MaxValue;
private TextMeshProUGUI AveValue;
private float min;
private float max;
private float ave;
public override void AfterAwake()
{
Graph = GetComponentInChildren<GraphChart>();
2025-03-12 09:55:47 +09:00
//prf_dateTime = Resources.Load<UI_DateTime>("Prefabs/UI/PRF_UI_DateTime");
2025-03-10 16:42:23 +09:00
chartDetailData = FindSingle<UI_GraphChartData>();
}
public void OnPointerClick(PointerEventData eventData)
{
if (!isMainChart)
{
onClickChart?.Invoke(graphName);
}
}
public void OnClickItem(GraphEventArgs args)
{
chartDetailData.SetData(graphName, graphChartData[args.Index], graphDateTimeData[args.Index], args.Position);
}
2025-03-12 09:55:47 +09:00
//public void SetChartLabels(List<string> labels)
//{
// for (int i = 0; i < labels.Count; i++)
// {
// var date = Instantiate(prf_dateTime, Content_DateTime);
// date.SetDateTime(labels[i]);
// }
//}
2025-03-10 16:42:23 +09:00
public void SetChartData(string graphName, GraphChartData graphData)
{
this.graphName = graphName;
min = graphData.chartData.Min();
max = graphData.chartData.Max();
ave = graphData.chartData.Average();
AveValue.SetText(DecimalPointCalculate(ave));
2025-03-10 16:42:23 +09:00
if (isMainChart)
{
MinValue.SetText(DecimalPointCalculate(min));
MaxValue.SetText(DecimalPointCalculate(max));
2025-03-10 16:42:23 +09:00
}
else
{
GraphName.SetText(this.graphName);
}
2025-03-10 16:42:23 +09:00
Graph.DataSource.VerticalViewSize = max * 2f;
Graph.DataSource.ClearCategory("WorkConditionsData");
Graph.DataSource.StartBatch();
for (int i = 0; i < graphData.chartData.Count; i++)
{
Graph.DataSource.AddPointToCategory("WorkConditionsData", i, graphData.chartData[i]);
graphChartData.Add(graphData.chartData[i]);
graphDateTimeData.Add(graphData.timeData[i]);
}
Graph.DataSource.EndBatch();
}
private string DecimalPointCalculate(float value)
{
var floatValue = Mathf.Round(value * 10f) / 10f;
return floatValue.ToString();
}
2025-03-10 16:42:23 +09:00
}