优化第三方数据导入

This commit is contained in:
monitor1394
2024-05-19 11:01:46 +08:00
parent 3e8bf7caee
commit fc346d30fb

View File

@@ -8,6 +8,8 @@ namespace XCharts.Editor
{ {
public class PraseExternalDataEditor : UnityEditor.EditorWindow public class PraseExternalDataEditor : UnityEditor.EditorWindow
{ {
[SerializeField] private int m_DataDimension = 1;
[SerializeField] private double m_DefaultYValue = 0;
private static BaseChart s_Chart; private static BaseChart s_Chart;
private static Serie s_Serie; private static Serie s_Serie;
private static Axis s_Axis; private static Axis s_Axis;
@@ -46,8 +48,13 @@ namespace XCharts.Editor
return; return;
} }
EditorGUILayout.LabelField("Input external data (echarts data):"); EditorGUILayout.LabelField("Input external data (echarts data):");
m_DataDimension = EditorGUILayout.IntField("Data Dimension", m_DataDimension);
if (m_DataDimension < 1)
m_DataDimension = 1;
else if (m_DataDimension == 2)
m_DefaultYValue = EditorGUILayout.DoubleField("Default Y Value", m_DefaultYValue);
inputJsonText = EditorGUILayout.TextArea(inputJsonText, GUILayout.Height(400)); inputJsonText = EditorGUILayout.TextArea(inputJsonText, GUILayout.Height(400));
if (GUILayout.Button("Add")) if (GUILayout.Button("Try Add"))
{ {
if (s_Serie != null) if (s_Serie != null)
{ {
@@ -76,7 +83,7 @@ namespace XCharts.Editor
} }
} }
private static bool ParseArrayData(Axis axis, string arrayData) private bool ParseArrayData(Axis axis, string arrayData)
{ {
arrayData = arrayData.Trim(); arrayData = arrayData.Trim();
if (!arrayData.StartsWith("data: Array")) return false; if (!arrayData.StartsWith("data: Array")) return false;
@@ -95,7 +102,7 @@ namespace XCharts.Editor
return true; return true;
} }
private static bool ParseArrayData(Serie serie, string arrayData) private bool ParseArrayData(Serie serie, string arrayData)
{ {
arrayData = arrayData.Trim(); arrayData = arrayData.Trim();
if (!arrayData.StartsWith("data: Array")) return false; if (!arrayData.StartsWith("data: Array")) return false;
@@ -120,7 +127,7 @@ namespace XCharts.Editor
return true; return true;
} }
private static bool ParseJsonData(Axis axis, string jsonData) private bool ParseJsonData(Axis axis, string jsonData)
{ {
if (!CheckJsonData(ref jsonData)) return false; if (!CheckJsonData(ref jsonData)) return false;
axis.data.Clear(); axis.data.Clear();
@@ -140,7 +147,7 @@ namespace XCharts.Editor
/// 从json中导入数据 /// 从json中导入数据
/// </summary> /// </summary>
/// <param name="jsonData"></param> /// <param name="jsonData"></param>
private static bool ParseJsonData(Serie serie, string jsonData) private bool ParseJsonData(Serie serie, string jsonData)
{ {
if (!CheckJsonData(ref jsonData)) return false; if (!CheckJsonData(ref jsonData)) return false;
if (s_LinksData) serie.ClearLinks(); if (s_LinksData) serie.ClearLinks();
@@ -156,6 +163,9 @@ namespace XCharts.Editor
if (data.Length == 2 && !double.TryParse(data[0], out value)) if (data.Length == 2 && !double.TryParse(data[0], out value))
{ {
double.TryParse(data[1], out value); double.TryParse(data[1], out value);
if (m_DataDimension == 2)
serieData.data = new List<double>() { i, m_DefaultYValue, value };
else
serieData.data = new List<double>() { i, value }; serieData.data = new List<double>() { i, value };
serieData.name = data[0].Replace("\"", "").Trim(); serieData.name = data[0].Replace("\"", "").Trim();
} }
@@ -187,6 +197,9 @@ namespace XCharts.Editor
if (a.StartsWith("value:")) if (a.StartsWith("value:"))
{ {
double value = double.Parse(a.Substring(6, a.Length - 6)); double value = double.Parse(a.Substring(6, a.Length - 6));
if (m_DataDimension == 2)
serieData.data = new List<double>() { i, m_DefaultYValue, value };
else
serieData.data = new List<double>() { i, value }; serieData.data = new List<double>() { i, value };
} }
else if (a.StartsWith("name:")) else if (a.StartsWith("name:"))
@@ -213,6 +226,9 @@ namespace XCharts.Editor
if (flag) if (flag)
{ {
var serieData = new SerieData(); var serieData = new SerieData();
if (m_DataDimension == 2)
serieData.data = new List<double>() { i, m_DefaultYValue, value };
else
serieData.data = new List<double>() { i, value }; serieData.data = new List<double>() { i, value };
serie.AddSerieData(serieData); serie.AddSerieData(serieData);
} }